C# 对两个列表进行相同排序

C# 对两个列表进行相同排序,c#,list,sorting,tuples,C#,List,Sorting,Tuples,我有一个字符串列表和一个整数列表。它们以“成对”的形式出现,即在索引处,给定的字符串和整数仍必须“匹配”。我需要按降序对整数排序,并让字符串按相同的顺序排序,这样对就完好无损了。我想最好的实现方法可能是将它们放入List>,但我不确定如何按第二个元组项进行排序。.NET有一个SortedDictionary数据类型 我会把它们放进去,你应该很好 .NET具有一个SortedDictionary数据类型 我会把它们放进去,你应该很好 如果你有一个元组列表,你可以这样对它们排序 myList.O

我有一个字符串列表和一个整数列表。它们以“成对”的形式出现,即在索引处,给定的字符串和整数仍必须“匹配”。我需要按降序对整数排序,并让字符串按相同的顺序排序,这样对就完好无损了。我想最好的实现方法可能是将它们放入List>,但我不确定如何按第二个元组项进行排序。

.NET有一个SortedDictionary数据类型


我会把它们放进去,你应该很好

.NET具有一个SortedDictionary数据类型


我会把它们放进去,你应该很好

如果你有一个元组列表,你可以这样对它们排序

myList.OrderBy(x => x.Item2);

如果你有一个元组列表,你可以这样对它们排序

myList.OrderBy(x => x.Item2);

最简单的方法是将它们放入一个
列表
,然后对该列表进行排序:

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);
List List=newlist(){“A”、“C”、“T”、“F”};
List list2=新列表(){5,4,3,2};
var results=list.Zip(list2,(a,b)=>new
{
str=a,
num=b
})
.OrderBy(pair=>pair.num);

如果你真的需要一个字符串列表,你可以使用
Select
把它们取出来,但是希望在整个程序中有一个更复杂对象的列表是有意义的。(如果这样做,请考虑创建一个实际的类,而不是使用匿名类。)

最简单的方法是将它们放入一个
列表中,然后对该列表进行排序:

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);
List List=newlist(){“A”、“C”、“T”、“F”};
List list2=新列表(){5,4,3,2};
var results=list.Zip(list2,(a,b)=>new
{
str=a,
num=b
})
.OrderBy(pair=>pair.num);
如果你真的需要一个字符串列表,你可以使用
Select
把它们取出来,但是希望在整个程序中有一个更复杂对象的列表是有意义的。(如果这样做的话,请考虑创建一个实际的类,而不是使用匿名类。)

我将创建一个带有字符串和整数属性的小“pair”类。可以实现IComparable()以确保该类通过Integer属性进行比较。然后可以将它们填充到一个通用列表中:
var pairs=new List()
object,并使用sort方法对它们进行排序:
pairs.sort()

我将创建一个小的“pair”类,带有string和integer属性。可以实现IComparable()以确保该类通过Integer属性进行比较。然后可以将它们填充到一个通用列表中:
var pairs=new List()
object,并使用sort方法对它们进行排序:
pairs.sort()