我想对人名列表进行排序,但是其他联系人列表也必须排序以保持相同的索引,以便联系人对应于名称。 我上过这堂课:
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
答案 0 :(得分: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();
答案 1 :(得分:0)
您应该使用词典而不是2个列表。见这里:http://www.dotnetperls.com/dictionary