0

文字列のリストと整数のリストが 1 つあります。それらは「ペア」になります。つまり、インデックスでは、指定された文字列と整数が「一致」している必要があります。整数を降順で並べ替え、文字列を同じように並べ替える必要があるため、ペアはそのままです。達成する最善の方法は、それらを List> に入れることだと思いますが、2番目の Tuple 項目でどのようにソートできるかわかりません。

4

4 に答える 4

3

最も簡単な方法は、それらを1つにまとめてから、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元に戻すことができますが、プログラム全体でより複雑なオブジェクトの単一のリストを作成することが理にかなっていることを願っています。(匿名のクラスを使用するのではなく、実際のクラスを作成することを検討してください。)

于 2012-10-30T17:00:09.917 に答える
0

文字列と整数のプロパティを持つ小さな「ペア」クラスを作成します。IComparable()を実装して、このクラスがIntegerプロパティによって比較されるようにすることができます。次に、それらを汎用のList:var pairs = new List<Pair>()オブジェクトに詰め込み、sortメソッドを使用してそれらをソートできますpairs.Sort();

于 2012-10-30T17:00:13.427 に答える
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 に答える