我有一个数据表,其中包含两列“名称”和“值”。
我的xml也如下所示,所以我需要将datatable列与XML属性连接,然后选择XML Value,如果属性值存在于datatable列中。 我尝试了很多方法,但没有一个帮助过。 请帮助我如何在linq的帮助下实现这一目标!
下面是XML代码
<Serverlist>
<server name='Eric' value='9' />
<server name='Donot' value='92' />
</Serverlist>
以下是我使用的代码段
XElement xelement = XElement.Load("path");
var data = from dtt in dt.AsEnumerable()
join xele in xelement.Descendants("server")
on (string)dtt.Field<string>("Name") equals (string)xele.Attribute("name")
select new { name =(String) xele.Attribute("name"), value=(string) xele.Attribute("value")};
foreach(var v in data)
{
Console.WriteLine(v);
}
答案 0 :(得分:0)
我认为你试图合并而不是加入?
将它们转换为字典(数据库列表和xml文档)。然后将两个词典合并在一起。好的例子在this thread。例如:
dictionaryFrom.ToList().ForEach(x => dictionaryTo.Add(x.Key, x.Value));
Simple and easy. According to this blog post it's even faster than most loops.