リストオブジェクト:クロスLINQのXMLを超える参加し、LINQのは、私がそのコンテンツを持つXMLファイル持って
その後、<?xml version="1.0" encoding="utf-8" ?>
<packages>
<package productnumber="123">
<stpos>
<pid>345</pid>
<vat>10</vat>
</stpos>
<stpos>
<pid>678</pid>
<vat>20</vat>
</stpos>
</package>
<package productnumber="246">
<stpos>
<pid>81012</pid>
<vat>5</vat>
</stpos>
<stpos>
<pid>141618</pid>
<vat>2</vat>
</stpos>
</package>
</packages>
私はまだ、製品のリストを持っていた:
var productList = new List<Product>
{
new Product {ProductNumber = "123" },
new Product {ProductNumber = "345" },
new Product {ProductNumber = "678" },
new Product {ProductNumber = "246" },
new Product {ProductNumber = "81012" },
new Product {ProductNumber = "Nothing" },
};
私がしたいことを確認してください各パッケージについてs productnumber and its pid
はproductList内に存在します。 trueの場合は、それらのパッケージを返します。上記の私のサンプルで
:
すべての3つの製品番号は、製品のリストに存在したので、私はproductnumber 123とリターンパッケージにしたいです。
var doc = XDocument.Load("./packages.xml");
var query = (from package in doc.Descendants("packages").Elements()
from p in productList
where p.ProductNumber == package.Attribute("productnumber").Value &&
productList.All(p =>
package.Descendants("stpos").Select(x => x.Element("pid").Value).Contains(p.ProductNumber))
select package).ToList();
:唯一の2製品番号は、製品のリストに含まれているため productnumber 246とパッケージはを返却すべきではない、「何も」...私のクエリザッツ
が含まれていないされていません
私のquery.Count()は0で、理由はわかりません。
誰もが私の目を開くことができ
しかし123の内部のPIDある345と678は、中に含まれていません'productList' – octavioccl
これは私が今修正したタイプミスです!まだ動作しません!カウントはまだゼロです!私も十字架に参加していると思いますが、現時点でどのように使用しているかは正しくありません;-) – Elisabeth