Группировка может содержать более одного элемента на группу. С другой стороны, словарь может содержать только одно значение для каждого ключа. Вы, вероятно, хотите ToLookup()
, который допускает перечисление значений для каждого ключа:
var objectives = (from c in xdoc.Descendents("Condition")
group c by (int)c.Attribute("ObjectiveID") into k
select k).ToLookup(e=> e.Key, e => e.Select( x=> x.Objective));
Если вы действительно хотите использовать словарь, вы можете просто выбрать, т. Е. Первый элемент каждой группировки:
var objectives = (from c in xdoc.Descendents("Condition")
group c by (int)c.Attribute("ObjectiveID") into k
select k).ToDictionary(e=> e.Key, e => e.First().Objective));