将两个不同的列表排序到相同的位置
本文关键字:排序 列表 位置 两个 | 更新日期: 2023-09-27 18:20:44
我想对人名列表进行排序,但必须对其他联系人列表进行排序才能保持相同的索引,以便联系人与姓名相对应。我有这个班:
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:-Joseph-Anna
列表2:-+35192345678-+35191234567
结果必须是:
列表1:-安娜-Joseph
列表2:-+351931234567-+3351912345678
您应该使用单个类来保存一个人的信息。
现在回答问题: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();
您应该使用Dictionary而不是2个Lists。请参见此处:http://www.dotnetperls.com/dictionary