linq to xml - 显示基于数组或列表的结果

时间:2010-07-15 12:33:03

标签: c# linq-to-xml

我有一个xml文件,我想在其上查询显示所有带有某些Id的文章。这是我尝试的但不知怎的,我无法让它工作。 我环顾四周,所有我能找到的都是使用linq to sql的例子。

任何帮助将不胜感激......

干杯, 特里

id在xml中以这样的方式存储

<relatedcontent articleID="1, 2, 3, 4" />

这是我的linq

 var mylinks = (from item in relatedLinks.Descendants("link") 
    where item.Attribute("linkID").Value.Contains("1, 2")
        select new
          {
            testlink = item.Value
          });

    foreach (var newarticles in mylinks)
       {
         Response.Write(newarticles .testlink);
       }

1 个答案:

答案 0 :(得分:0)

您现在正在做的是查找Id包含字符串“1,2”的文章,就像Id是“5,8,1,2,9”一样。

你想要的可能恰恰相反;查找“1,2”包含Id的文章,即ID为“1”和“2”的文章:

var ids = new HashSet<string>();
ids.Add("1");
ids.Add("2");

var mylinks =
  from item in relatedLinks.Descendants("link") 
  where ids.Contains(item.Attribute("linkID").Value)
  select new { testlink = item.Value };