我有一个字符串列表和一个整数列表。它们以“对”形式出现,即在索引处,给定的字符串和整数仍然必须“匹配”。我需要按降序对整数进行排序,并使字符串排序相同,因此对完整。我想最好的实现方法可能是将它们放入List>中,但我不确定如何通过第二个Tuple项进行排序。
答案 0 :(得分:3)
最简单的方法是将它们放入单个List
,然后订购该列表:
List<string> list = new List<string>() { "A", "C", "T", "F" };
List<int> list2 = new List<int>() { 5, 4, 3, 2 };
var results = list.Zip(list2, (a, b) => new
{
str = a,
num = b
})
.OrderBy(pair=> pair.num);
如果你真的需要一个只有字符串的列表,你可以使用Select
让它们退出,但希望在整个程序中只有一个更复杂对象的列表是有意义的。 (考虑制作一个实际的课程,而不是使用匿名课程,如果你那样做。)
答案 1 :(得分:0)
.NET具有SortedDictionary数据类型。
http://msdn.microsoft.com/en-us/library/f7fta44c%28v=vs.90%29.aspx
我只是加载它们,你应该很好。
答案 2 :(得分:0)
如果你有一个元组列表,你可以像这样订购它们
myList.OrderBy(x => x.Item2);
答案 3 :(得分:0)
我会创建一个带有字符串和整数属性的小“对”类。您可以实现IComparable()以确保通过Integer属性比较此类。然后,您可以将它们填充到通用List:var pairs = new List<Pair>()
对象中,并使用sort方法对它们进行排序:pairs.Sort();
。