我有一个字符串列表和一个整数列表。它们以“对”的形式出现,即在索引处,给定的字符串和整数必须仍然“匹配”。我需要按降序对整数进行排序并使字符串排序相同,因此这些对是完整的。我想实现的最佳方法可能是将它们放入 List>,但我不确定如何按第二个 Tuple 项对其进行排序。
问问题
1651 次
4 回答
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);
如果您真的需要一个仅包含字符串的列表,您可以使用 aSelect
将它们取出,但希望在整个程序中拥有一个更复杂对象的单个列表是有意义的。(如果您这样做,请考虑创建一个实际的课程,而不是使用匿名课程。)
于 2012-10-30T17:00:09.917 回答
0
.NET 有一个 SortedDictionary 数据类型。
http://msdn.microsoft.com/en-us/library/f7fta44c%28v=vs.90%29.aspx
我会把它们加载进去,你应该很好。
于 2012-10-30T16:59:23.623 回答
0
如果你有一个元组列表,你可以像这样订购它们
myList.OrderBy(x => x.Item2);
于 2012-10-30T16:59:50.073 回答
0
我会创建一个带有字符串和整数属性的小型“对”类。您可以实现 IComparable() 以确保此类通过 Integer 属性进行比较。然后,您可以将它们填充到通用 List:var pairs = new List<Pair>()
对象中,并使用 sort 方法对它们进行排序:pairs.Sort();
。
于 2012-10-30T17:00:13.427 回答