4

値が.Dictionary <string, string>で区切られた部分文字列の連結である があり:ます。たとえば、123:456:Bob:Smith.

辞書を最後の部分文字列 (Smith) の昇順で並べ替えたいと思います。できれば次のようにします。

orderedDictionary = unordered
                        .OrderBy(x => x.Value)
                        .ToDictionary(x => x.Key, x => x.Value);

したがって、どうにかしてx.Valueを として扱いstring、4 番目の部分文字列を抽出して並べ替える必要があります。何か案は?

4

3 に答える 3

6
var ordered = unordered.OrderBy(x => x.Value.Split(':').Last())
                       .ToDictionary(x => x.Key, x => x.Value);
于 2012-10-30T20:28:15.130 に答える
2

試す

orderedDictionary = unordered.OrderBy(x => x.Value.Substring(x.Value.LastIndexOf(":"))).ToDictionary(x => x.Key, x => x.Value);
于 2012-10-30T20:26:01.240 に答える
1

OrderByMethod of を見てください。IDictionary具体的には、このhttp://msdn.microsoft.com/en-us/library/bb549422.aspxでパラメータに注意してcomparerください。それはあなたを正しい方向に導くはずであり、残りの利益を学ぶことができると思います.

于 2012-10-30T20:27:05.937 に答える