Ich habe eine Sammlung von MyClass, die ich abfragen möchte mit LINQ, um unterschiedliche Werte zu erhalten, und erhalten Sie ein Wörterbuch < String, string> als Ergebnis, aber ich Ich kann nicht herausfinden, wie ich es einfacher machen kann als ich es hier unten mache. Was wäre ein sauberer Code, den ich verwenden kann, um das Dictionary < string, string> als Ergebnis zu bekommen?LINQ-Abfrage zum Zurückgeben eines 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());
}
Was soll es mit doppelten Schlüsseln tun? Nimm einfach die erste und ignoriere die nächsten? Seien Sie sich bewusst, dass Wörterbücher nicht geordnet sind, so dass Ihre Bestellung in der Abfrage keine Auswirkung hat ... –
Vielleicht, was Sie suchen, ist die SortedDictionary-Implementierung von IDictionary. Sonst ist das Sortieren über ein Dictionary sinnlos. – Fede