0

我有一个字符串列表和一个整数列表。它们以“对”的形式出现,即在索引处,给定的字符串和整数必须仍然“匹配”。我需要按降序对整数进行排序并使字符串排序相同,因此这些对是完整的。我想实现的最佳方法可能是将它们放入 List>,但我不确定如何按第二个 Tuple 项对其进行排序。

4

4 回答 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 回答