У меня есть 2 XElements. Каждый из которых содержит несколько детей ЭлементыЭлементы возврата, которые не находятся в другом XML
например
Xml1:
<Addresses>
<Address>
<Line1>1 Street</Line1>
<Postcode>PL1 5RT</Postcode>
</Address>
<Line1>57 New Street</Line1>
<Postcode>PL1 5RT</Postcode>
</Address>
<Address>
<Line1>2 Street</Line1>
<Postcode>PL1 5RT</Postcode>
</Address>
</Addresses>
xml2:
<Addresses>
<Address>
<Line1>1 Street</Line1>
<Postcode>PL1 5RT</Postcode>
</Address>
<Address>
<Line1>2 Street</Line1>
<Postcode>PL1 5RT</Postcode>
</Address>
</Addresses>
Я пытаюсь собрать Linq запрос, который будет отфильтровать элементы адреса, которые находятся в Xml, но не в Xml2 (в приведенном выше случае это будет адрес «57 New Street»)
В настоящее время мой код выглядит следующим образом:
var diffAddress = from address1 in Xml1.Elements()
from address2 in Xml2.Elements()
where (string)address1.Element("Line1") != (string)address2.Element("Line1") ||
where (string)address1.Element("Postcode") != (string)address2.Element("Postcode")
select address1;
Однако его возвращение все значения в Xml1 Правильно ли я думать, что я могу сделать это с помощью одного запроса или же я должен получить результаты от обоих и затем перебирать их, чтобы получить Адреса в Xml1, которые не находятся в Xml2 ??
Любая помощь будет принята с благодарностью :)
Взгляните на LINQ «За исключением» оператора – paul
Я не думаю, что ваш код компилируется в настоящее время данный блуждающий '|| 'и/или errant' where'. – user7116
@paul: Я верю, что вместо этого он захочет «Интерсект». – user7116