2009-07-09 41 views
0

即时通讯工作与XML和LINQ。linq - 如何在加入语句中结合条件

我有2个XML文件都包含“ID”和“语言”

我想做一个基于其中两个身份证和语言两个文件中 等于加入我有这样的事情:

var data= 
from details in h_details.Descendants("ROW") 

join inst in instance.XPathSelectElements("//Row") 
on details.Element("ID").Value 
equals inst.XPathSelectElement("Field[@Name=\'h_id\']").Value 
and on details.Element("LANGUAGE").Value 
equals inst.XPathSelectElement("Field[@Name=\'h_lang\']").Value 

basically the "and" statement wont work, so how do i join based on 2 conditions? 
+0

这看起来像是http://stackoverflow.com/questions/373541/how-to-do-joins-in-linq-on-multiple-fields-in-single-join – dariom 2009-07-09 09:57:59

回答

2

匿名类型救援。

var data= 
    from details in h_details.Descendants("ROW") 
    join inst in instance.XPathSelectElements("//Row") 
    on new { 
    x = details.Element("ID").Value, 
    y = details.Element("LANGUAGE").Value 
    } equals new { 
    x = inst.XPathSelectElement("Field[@Name=\'h_id\']").Value, 
    y = inst.XPathSelectElement("Field[@Name=\'h_lang\']").Value 
    } 
    select ... ; 
0

试工会得到两份名单,并加入他们的行列