У меня есть некоторые данные в формате XML, которые содержат список элементов:
<message>
<items id="_DD" value="28OCT"/>
<items id="_PC" value="ABV"/>
<items id="_CT" value="15H03"/>
<items id="_CD" value="31OCT"/>
<items id="_AN" value="5556695"/>
<items id="_CC" value="PSD"/>
<items id="_MK" value="OJJ"/>
<items id="_DT" value="LKM"/>
<items id="_IT" value="B239"/>
<items id="_ML" value="4569"/>
<items id="_TA" value=""/>
<items id="_P1" value=""/>
<items id="_MK" value="APK"/>
<items id="_DT" value="MMK"/>
<items id="_IT" value="B219"/>
<items id="_ML" value="0069"/>
<items id="_RC" value="0"/>
...
</message>
Большинство элементов независимы между ними, но могут быть случаи, когда они связаны. Например, элементы id="_MK"
отмечают новую категорию.
Поэтому мне нужно составить список элементов (например, с id="_ML"
) и иметь возможность получить также категорию, к которой они относятся. принадлежать (это значение предыдущего элемента с id="_MK"
).
Как получить значение для каждого элемента их предыдущего id="_MK"
родного брата, чтобы я мог назначить категорию (значение этого элемента id="_MK"
) для них?
В случае списка "_ML"
результат должен содержать:
[
{
value: "4569",
category: "OJJ"
},
{
value: "0069",
category: "APK"
}
]
Я знаю, что мог сделайте это с foreach
, но список элементов довольно большой и я беспокоюсь о производительности . Мне не удалось найти какое-либо решение с использованием LinQ, что было для меня лучшим вариантом.
Кроме того, формат и структура взяты из стороннего источника, поэтому я не могу его изменить.