Поскольку элементы имеют тип IEnumerable<MyClass>
, вы должны быть в состоянии сделать следующее:
items.ToDictionary(x => x.Name)
Вы могли бы даже сделать:
entity.Instances.ToDictionary(x => x.Name)
Вам не нужно указывать параметры типа, поскольку они могут быть правильно определены.
Edit:
items.ToDictionary(x => x.Name)
на самом деле неверно, потому что items
не относится к типу IEnumerable<MyClass>
. На самом деле это IEnumerable
типа anonymouse, который имеет 2 свойства (Name
, который содержит свойство myClass.Name
, и x
, который имеет тип MyClass
).
В этом случае, если вы можете сделать:
var items = from instance in entity.Instances
select new { Name = instance.Name, // don't have to specify name as the parameter
Instance = instance
};
var dict = items.ToDictionary(item => item.Name,
item => item.Instance);
Второй пример немного проще в этом случае. По сути, вы не получите никакого значения из запроса linq, чтобы получить items
, если все, что вы пытаетесь сделать, - это создать словарь.