4

私は持っている

List<string> strs;
double[] values;

ここで、values 配列には、strs リスト内の各文字列の値が含まれます

strs={"abc","def","ghi"} これは、 「 abc values={3,1,2} 」の値が 3 などであることを意味します。

次のように、値で順序付けられた文字列と値を並べ替えたい

strs={"def","ghi","abc"}
values={3,2,1}

私は使っている

string[] strsArr = strs.ToArray();
Array.Sort(values, strsArr);//1. sort it ascendingly
strs = strsArr.ToList();
Array.Reverse(strs);//2. reverse it

2フェーズなしで直接降順でソートできる方法はありますか?

4

3 に答える 3

0

辞書を使用してみてください:

Dictionary<string, double> dictionary = new Dictionary<string, double>();
dictionary.Add("abc", 3);
dictionary.Add("def", 1);
dictionary.Add("ghi", 2);

var sortedDict = dictionary.OrderByDescending(x => x.Value);
double[] values = sortedDict.Select(x => x.Value).ToArray();
List<string> strs = sortedDict.Select(x => x.Key).ToList();
于 2012-10-10T03:13:02.033 に答える