如何在动态linq中将自身的值引用到XML?

时间:2010-09-07 07:23:00

标签: linq-to-xml

我正在使用Scott Gu的Linq到XMl的动态linq库。问题是我不知道如何在动态查询中引用元素本身值。

我想做的事情如下:

var doc = XDocument.Load("test.xml");
var ret = doc.Descendants("Row").Where(x => x.Element("ID").Value == "2").ToList();

我想将where子句替换为动态linq,但我不知道应该如何重写它。我尝试如下:

var ret = doc.Descendants("Row").Where("Element(""ID"").Value == @0", "2").ToList();

但它给了我一个错误,说“没有名为Element的属性”或其他什么。

有人可以告诉我该怎么做吗?

提前致谢, 柳

1 个答案:

答案 0 :(得分:0)

好的,我做了一招。这不是很好,但有效。它可能会导致性能问题,但就目前而言,没关系。

var doc.Descendants("Row").Select(x => x.Element("ID").Value).Where("Value == @0", "2").Select(x => x.Parent).ToList();

如果您有更好的解决方案,请在此处发布。

谢谢, 柳