У меня есть уродливый xml (если бы я мог изменить, я бы) пришел ко мне, чтобы мне нужно было обработать. Я хотел бы сгруппировать по определенному атрибуту в XML для дальнейшей обработки. Проблема в том, что некоторые атрибуты имеют тип = «A», а некоторые имеют тип = «A1», type = «A2» и т. Д. Я хочу, чтобы все элементы, имеющие значение типа атрибута, начинающееся с «A», группироваться вместе.Как я могу подстроить значение XAttribute из LINQ
Это не работает, и я не знаю, что нужно изменить, чтобы заставить его работать:
var result = from ele in xdoc.Descendants(Namespace + "item")
let item= ele.Attribute("type").Value.Substring(1,1)
group ele by item into grp
select grp;
Когда я снимаю подстроку это работает отлично, но, очевидно, не группа, как я хочу.
Ошибка:
Error has been thrown by the target of an invocation
Пример XML:
<items>
<item type="A" position="0">
<itemvalue>10</itemvalue>
</item>
<item type="A1" position="1">
<itemvalue>20</itemvalue>
</item>
<item type="A2" position="2">
<itemvalue>30</itemvalue>
</item>
<item type="B" position="0">
<itemvalue>10</itemvalue>
</item>
<item type="B1" position="1">
<itemvalue>20</itemvalue>
</item>
<item type="B2" position="2">
<itemvalue>30</itemvalue>
</item>
</items>
О, черт возьми, за то, что ты выглядишь как полный идиот ... это было полностью благодаря @afrischke. Я разработчик sql и даже не думал о позиции 0 в подстроке. – scarpacci
Не беспокойтесь, я сделал (и, конечно же, сделаю) гораздо более смущающие ошибки. – afrischke