c# .net linq dictionary

c# - Consulta LINQ para devolver un Diccionario<cadena, cadena>



dictionary where c# (2)

Mira los métodos de extensión ToLookup y / o ToDictionary .

Tengo una colección de MyClass que me gustaría consultar usando LINQ para obtener valores distintos, y obtener un Diccionario <cadena, cadena> como resultado, pero no puedo entender cómo puedo hacerlo más simple que yo Estoy haciendo a continuación. ¿Cuál sería un código más limpio que puedo usar para obtener el Diccionario <cadena, cadena> como mi 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()); }


Utilice el método ToDictionary directamente.

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.ToString(), mc => mc.ValueProp.ToString(), StringComparer.OrdinalIgnoreCase);