2009-07-09 3 views
0

ich arbeite mit XML und LINQ.linq - wie kombinieren Bedingungen in einer Join-Anweisung

Ich habe 2 XML-Dateien enthalten beide „ID“ und „Sprache“

Ich möchte zu tun kommen auf, wo die beiden die ID und Sprache sind gleich in beiden Dateien ich so etwas wie dieses:

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

Das sieht wie ein Duplikat http://stackoverflow.com/questions/373541/how-to-do-joins-in-linq-on-multiple-fields-in-single-join – dariom

Antwort

2

Anonyme Typen zur Rettung kommen.

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

versuch die beiden Listen zu erhalten und sie

Verwandte Themen