我有3个列表包含:索引,名称,年龄
示例:
List<int> indexList = new List<int>();
indexList.Add(3);
indexList.Add(1);
indexList.Add(2);
List<string> nameList = new List<string>();
nameList.Add("John");
nameList.Add("Mary");
nameList.Add("Jane");
List<int> ageList = new List<int>();
ageList.Add(16);
ageList.Add(17);
ageList.Add(18);
我现在必须根据indexList对所有3个列表进行排序。
如何对indexList使用.sort(),同时对其他2个列表进行排序
答案 0 :(得分:17)
你正在以错误的方式看待它。创建自定义类:
class Person
{
public int Index { get; set; }
public string Name{ get; set; }
public int Age{ get; set; }
}
然后,在List<Person>
命名空间的OrderBy
方法的帮助下对System.Linq
进行排序:
List<Person> myList = new List<Person>() {
new Person { Index = 1, Name = "John", Age = 16 };
new Person { Index = 2, Name = "James", Age = 19 };
}
...
var ordered = myList.OrderBy(x => x.Index);
另外,您可以阅读有关反模式的Jon Skeet article。
答案 1 :(得分:3)