私はDictionary<int, Tuple<int, string, int, bool>>
オブジェクトを持っていますが、私はどのように3番目の要素タプル値(私はTuple<int, string, int, bool>>
の2番目の "int"を意味します)。タプルの要素による並べ替え<int、Tuple <int、int、int、int、string、int >>
答えて
辞書をソートすることはできません。辞書をソートすることはできません。ソートは辞書の目的を破るので、意味がありません。ソートはハッシュテーブルを分割します。
あなたはこのように、辞書からアイテムを取得し、それらを並べ替えることができます。
ご覧のとおりList<KeyValuePair<int, Tuple<int, string, int, bool>> list;
list = dict.OrderBy(kvp => kvp.Value.Item3).ToList();
は、最終的な結果はリストではなく、辞書です。
これは良いようですが、そうではありません:List
ああ、タイプミス。ありがとう@Kikus –
リストには変換または配列とインプレースソートすることによって、余分なメモリ割り当ての一部を回避することができます
var arr = dic.ToArray();
Array.Sort(arr, (a, b) => a.Value.Item3.CompareTo(b.Value.Item3));
あなたは 'OrderBy'と' Array.Sort'を意味しますか? –
@JeroenvanLangenはい、ポイントは、 '.OrderBy' LINQ拡張が、' ICollection
- 1. カスタムコンパレータ<int型、ペア<int, int>>
- 2. メモリ効率の良いマップ<pair <int,int>、set <int>>代替
- 3. ベクトル<int> v(istream_iterator <int>(cin)、istream_iterator <int>());
- 4. unorderered_set <tuple <int,int>>の方法は?
- 5. <Int> == <String>
- 6. タプル<int, int>とint [2]のメモリ使用
- 7. ペア<int,int>ペア
- 8. ソート一覧<タプル<int, int>>インプレース
- 9. ベクトル<pair <int、pair <int,int> >> Pythonのデータ構造
- 10. SMLのint - > int - > intと(int * int) - > intの違いは何ですか?
- 11. インパラ:INTとARRAYの要素を一致させよ<INT>
- 12. マップを並べ替える方法<int、pair <int,int>>は2番目の要素のみに従っていますか?
- 13. リストを変換する<int[]> int [、]
- 14. リターンするC#Linqクエリ<int,int[]>
- 15. のstd :: PRIORITY_QUEUE ::ペア<int, int>
- 16. Java 8ラムダリストマップ<Int、リスト<String>>
- 17. スカラ:(INT、INT)=> intは一致していない(INT、INT)=>のInt
- 18. 範囲<Int>を<Int>に変換する方法?
- 19. std :: function <int(int)>をstd :: function <const int&(const int&x)>に割り当てる
- 20. ラムダ型をint => IEnumerable <string>> int =>タスク<IEnumerable <string> >>に変換しますか?
- 21. "int - >(int - > int)= <fun>"型の式を使用できますか?
- 22. OCaml - (int - > int) - > int型の関数を与える
- 23. 「マージ(のstd ::ベクトル<int>&、のstd ::ベクトル<int>&)
- 24. マルチセットでの下限の検索<pair <int,int>>(C++)
- 25. 'System.Collections.Generic.Dictionary <int型、System.Collections.Generic.Dictionary <string,int>> .Dictionary(int型)' の最良のオーバーロードされたメソッドの試合
- 26. は 'System.Collections.Generic.IEnumerable <int?>'
- 27. Newstonsoft.JsonデシリアライズINT <>
- 28. map <int、pair >
- 29. ASP.NETハッシュリスト<int>
- 30. Dictionary <int、List <Tuple <string、object >>>からDictionary <int、List <Tuple <文字列、オブジェクト、AnEnum >>> LINQを使用
あなたは全く '辞書<,>'並べ替えることはできません。要素をシーケンスとして特定の方法で並べ替えることはできますが、それはもはや辞書ではありません。 –
ソートされた辞書が必要なものであれば、['OrderedDictionary'](https://msdn.microsoft.com/en-us/library/system.collections.specialized)の使用を検討してください。順序付けられた辞書(v = vs.110).aspx)。 –
@IanH: 'int'キーで' Dictionary'を持つのはまったく合理的です...なぜそうでないと思いますか? –