Tengo una colección de MyClass que me gustaría consultar utilizando LINQ para obtener valores distintos, y obtengo un Dictionary < string, string> como resultado, pero No puedo entender cómo puedo hacerlo de manera más simple de lo que estoy haciendo abajo. ¿Qué podría ser un código más limpio que pueda usar para obtener la cadena del diccionario <, string> como resultado?Consulta de LINQ para devolver un diccionario <cadena, cadena>
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());
}
¿Qué quieres que haga con las llaves duplicadas? Solo toma el primero e ignora los siguientes? Tenga en cuenta que los diccionarios no están ordenados, por lo que su orden en la consulta no tendrá ningún efecto ... –
Tal vez lo que está buscando es la implementación SortedDictionary de IDictionary. De lo contrario, ordenar un diccionario no tiene sentido. – Fede