Eu usei o método "select" de palavra-chave e extensão para retornar um IEnumerable<T>
com LINQ, mas preciso retornar um genérico Dictionary<T1, T2>
e não consigo descobrir. O exemplo que aprendi usando algo de uma forma semelhante à seguinte:
IEnumerable<T> coll = from x in y
select new SomeClass{ prop1 = value1, prop2 = value2 };
Eu também fiz a mesma coisa com métodos de extensão. Eu assumi que, como os itens em um Dictionary<T1, T2>
podem ser iterados, KeyValuePair<T1, T2>
eu poderia substituir "SomeClass" no exemplo acima por " new KeyValuePair<T1, T2> { ...
", mas isso não funcionou (Key e Value foram marcados como somente leitura, portanto, não pude compilar esse código )
Isso é possível ou preciso fazer isso em várias etapas?
Obrigado.
.ToDictionary(item => item.prop1, item => item.prop2);
explicitamente também definir o valor.Uma coleção de
KeyValuePair
é ainda mais explícita e executa muito bem.fonte