0

我想对人名列表进行排序,但其他联系人列表也必须进行排序以保持相同的索引,以便联系人与姓名相对应。我有这门课:

        List<string> name = new List<string>();
        List<string> cellphone = new List<string>();

        public void setName(string value)
        {
            name.Add(value);
        }
        public void setCellphone(string value)
        {
            cellphone.Add(value);
        }

        public List<string> getNames()
        {
            return name;
        }
        public List<string> getCellphones()
        {
            return cellphone;
        }

现在我想让它们分类;

例如:

清单 1: - 约瑟夫 - 安娜

清单 2: - +351912345678 - +351931234567

结果必须是:

清单 1: - 安娜 - 约瑟夫

清单 2: - +351931234567 - +351912345678

4

2 回答 2

3

您应该使用单个类来保存有关一个人的信息。

现在问题来了:Zip + OrderBy + 2 *( Select + ToList ) 可以为您提供相同顺序的排序列表。就像是:

 var pairs = name.Zip(cellphone, (name, phone)=> new {name, phone})
     .OrderBy(item => item.name);

 name = pairs.Select(item => item.name).ToList();
 cellphone = pairs.Select(item => item.phone).ToList();
于 2013-07-02T22:24:02.273 回答
0

您应该使用字典而不是 2 个列表。见这里: http: //www.dotnetperls.com/dictionary

于 2013-07-02T22:21:56.650 回答