Tengo una colección de MyClass que me gustaría consultar usando LINQ para obtener valores distintos, y obtener un Diccionario <string, string> como resultado, pero no puedo entender cómo puedo hacerlo de una manera más simple que yo Estoy haciendo abajo. ¿Cuál sería un código más limpio que pueda usar para obtener el Diccionario <string, string> como resultado?
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());
}
66
¿Qué quieres que haga con las claves duplicadas? ¿Solo toma el primero e ignora los siguientes? Tenga en cuenta que los diccionarios no están ordenados, por lo que su ordenación en la consulta no tendrá ningún efecto ...
—
Jon Skeet
Quizás lo que está buscando es la implementación SortedDictionary de IDictionary. De lo contrario, la ordenación sobre un Diccionario no tiene sentido.
—
Fede