У меня есть коллекция MyClass, которую я хотел бы запросить, используя LINQ, чтобы получить различные значения, и получить в результате словарь <string, string>, но я не могу понять, как я могу сделать это проще, чем я делаю ниже. Какой будет более чистый код, который я смогу использовать для получения словаря <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
Что вы хотите сделать с дубликатами ключей? Просто взять первое и игнорировать последующие? Имейте в виду, что словари не упорядочены, поэтому ваш порядок в запросе не будет иметь никакого эффекта ...
—
Джон Скит
Может быть, то, что вы ищете, это реализация IDictionary в SortedDictionary. В противном случае сортировка по словарю не имеет смысла.
—
Фед