如何使用LINQ to XML中的条件获取一些数据?

时间:2011-08-31 22:11:45

标签: c# linq-to-xml

我有一个Enumerable和一个int数组,我只想获取ObjectiveID存在于数组中的数据。例如:

如果这是我的阵列:1,2,3 在我的XML文件中,我有一些节点包含:1,2,3,4,5,6

程序必须得到1,2,3,因为存在于数组中。我怎样才能做到这一点?我正在计划使用bucles并删除每个,但我知道有更好的方法来做到这一点。

这是代码的一部分:

    XDocument xdoc = XDocument.Load(path);
    var conditions = from c in xdoc.Descendants("Condition")
                     select new
                     {
                         ObjectiveID = (int)c.Attribute("ObjectiveID"),
                         TypeID = (int)c.Attribute("TypeID"),
                         ProblemID = (int)c.Attribute("ProblemID"),
                         Ranges = (from r in c.Descendants("Range")
                                   select new
                                   {
                                       Decimals = (int)r.Attribute("Decimals"),
                                       Min = (decimal)r.Attribute("Min"),
                                       Max = (decimal)r.Attribute("Max")
                                   }).ToArray(),
                     };

1 个答案:

答案 0 :(得分:0)

值1-6根本不清楚,但你可能只想要一个where条款,如:

where array.Contains((int) c.Attribute("id"))

或类似的东西。