У меня есть несколько XML-файлов, содержащих много повторяющихся записей.Эффективное удаление повторяющихся элементов xml в C#
annotations>
<annotation value=",Clear,Outdoors" eventID="2">
<image location="Location 1" />
<image location="Location 2" />
<image location="Location 2" />
</annotation>
<annotation value=",Not a problem,Gravel,Shopping" eventID="2">
<image location="Location 3" />
<image location="Location 4" />
<image location="Location 5" />
<image location="Location 5" />
<image location="Location 5" />
</annotation>
</annotations>
Я хочу удалить повторяющиеся элементы в каждом из дочерних элементов. То, как я подошел к этому является копированием всех элементов в списке, а затем сравнивая их,
foreach (var el in xdoc.Descendants("annotation").ToList())
{
foreach (var x in el.Elements("image").Attributes("location").ToList())
{
//add elements to a list
}
}
на полпути через я понял, что это очень неэффективно и отнимает много времени. Я довольно новичок в XML, мне было интересно, есть ли какие-либо встроенные методы в C#, которые я могу использовать для удаления дубликатов ?.
Я попытался с помощью
if(!x.value.Distinct()) // can't convert collections to bool
x.Remove();
Но это не работает, ни делает
Заканчивать 'GroupBy()' –