Я пытаюсь использовать один атрибут для использования в качестве ключа, а другой для использования в качестве значения. Если я использую (XDoc является объект XDocument в примере):Взятие 2 атрибутов из XElement для создания словаря LINQ
Dictionary<string, XElement> test = xDoc.Descendants()
.Where<XElement>(t => t.Name == "someelement")
.ToDictionary<XElement, string>(t => t.Attribute("myattr").Value.ToString());
Я получаю словарь с myattr значения в качестве ключа (который является то, что я хочу), но весь объект XElement в качестве значения.
Что я хочу сделать, это выбрать второй атрибут для установки в качестве свойства значения для каждого словаря, но не может показаться, что это не так.
Можно ли все это сделать в 1 заявлении Linq? Любопытство поймало меня!
Cheers!
Отлично работает! Спасибо за ответ, но почему кастинг меняет ситуацию? Если у меня есть кастинг во втором выражении, которое он ищет, это компаратор. – AndrewC
@ AndyC, что вы пытаетесь сделать? .ToDictionary имеет несколько разных перегрузок, один из которых берет компаратор. – driis
в моем исходном коде у меня было, взяв это, он заработал. Просто любопытно, почему это так. –
AndrewC