LINQを使用してクエリを実行して個別の値を取得し、結果としてDictionary <string、string>を取得するMyClassのコレクションがありますが、自分より簡単にそれを行う方法を理解できません以下に行っています。私の結果としてDictionary <string、string>を取得するために使用できる、よりクリーンなコードは何でしょうか?
var desiredResults = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
var queryResults = (from MyClass mc in myClassCollection
orderby bp.SomePropToSortOn
select new KeyValuePair<string, string>(mc.KeyProp, mc.ValueProp)).Distinct();
foreach (var item in queryResults)
{
desiredResults.Add(item.Key.ToString(), item.Value.ToString());
}
6
重複するキーをどのように処理しますか?ただ最初のものを取り、その後のものを無視しますか?辞書は順序付けされていないため、クエリでの順序付けは効果がないことに注意してください...
—
Jon Skeet
たぶんあなたが探しているのは、IDictionaryのSortedDictionary実装です。それ以外の場合、辞書での並べ替えは無意味です。
—
Fede