He usado la palabra clave "select" y el método de extensión para devolver un IEnumerable<T>
mensaje con LINQ, pero necesito devolver un genérico Dictionary<T1, T2>
y no puedo resolverlo. El ejemplo que aprendí de esto usó algo en una forma similar a la siguiente:
IEnumerable<T> coll = from x in y
select new SomeClass{ prop1 = value1, prop2 = value2 };
También hice lo mismo con los métodos de extensión. Supuse que, dado que los elementos en a Dictionary<T1, T2>
se pueden KeyValuePair<T1, T2>
iterar, simplemente podría reemplazar "SomeClass" en el ejemplo anterior con " new KeyValuePair<T1, T2> { ...
", pero eso no funcionó (Key y Value se marcaron como de solo lectura, por lo que no pude compilar este código )
¿Es esto posible o debo hacerlo en varios pasos?
Gracias.
.ToDictionary(item => item.prop1, item => item.prop2);
para explicitar establecer el valor también.Una colección de
KeyValuePair
es aún más explícita y se ejecuta muy bien.fuente