Requête LINQ pour renvoyer un Dictionary

J’ai une collection de MyClass que je voudrais interroger en utilisant LINQ pour obtenir des valeurs distinctes et récupérer un Dictionary comme résultat, mais je n’arrive pas à comprendre comment je peux le faire plus facilement que moi suis en train de faire ci-dessous. Quel serait un code plus propre que je peux utiliser pour obtenir le Dictionary comme résultat?

var desiredResults = new Dictionary(SsortingngComparer.OrdinalIgnoreCase); var queryResults = (from MyClass mc in myClassCollection orderby bp.SomePropToSortOn select new KeyValuePair(mc.KeyProp, mc.ValueProp)).Distinct(); foreach (var item in queryResults) { desiredResults.Add(item.Key.ToSsortingng(), item.Value.ToSsortingng()); } 

Utilisez la méthode ToDictionary directement.

 var result = // as Jon Skeet pointed out, OrderBy is useless here, I just leave it // show how to use OrderBy in a LINQ query myClassCollection.OrderBy(mc => mc.SomePropToSortOn) .ToDictionary(mc => mc.KeyProp.ToSsortingng(), mc => mc.ValueProp.ToSsortingng(), SsortingngComparer.OrdinalIgnoreCase); 

Regardez les méthodes d’extension ToLookup et / ou ToDictionary .