私はこの辞書を持っています
Dictionary<Guid, DateTime> myDic = new Dictionary<Guid, DateTime>();
DESCをDateTimeでソートする最良の方法は何ですか? LINQですか?
コードでどのように行うことができますか?
ありがとうございました!
私はこの辞書を持っています
Dictionary<Guid, DateTime> myDic = new Dictionary<Guid, DateTime>();
DESCをDateTimeでソートする最良の方法は何ですか? LINQですか?
コードでどのように行うことができますか?
ありがとうございました!
Dictionary
現在の実装の詳細に依存せずにa を並べ替えることはできませんが、LINQ の並べ替え機能を使用して、特定の順序でそのエントリを処理できます。
foreach (KeyValuePair<Guid,DateTime> pair in myDict.OrderByDescending(p => p.Value)) {
// do some processing
}
純粋に好奇心として、順序付けられたキーと値のペアを のコンストラクターに渡すことができDictionary
ます。結果の辞書は、コンストラクターへの列挙で項目が提供された順序で列挙されます。ただし、この機能に依存することは非常に危険です。コードでそれを行うべきではありません。
目的を達成するには、データ構造が間違っています。ディクショナリの目的は、キーによる高速アクセスを提供することです。独自のキーをソートする SortedDictionary は存在しますが、値をソートするディクショナリはありません。意味がないからです。
必要なのは、降順でソートされた myDic に含まれる DateTimes だけであると仮定すると、次のことができます。
var dateTimesDescending = myDic.Values.OrderByDescending(d => d);
これにより、値を降順で列挙できますが、辞書はソートされません。