Using LINQ to XML, how can I join two sets of data based on ordinal position?
<document>
<set1>
<value>A</value>
<value>B</value>
<value>C</value>
</set1>
<set2>
<value>1</value>
<value>2</value>
<value>3</value>
</set2>
</document>
Based on the above fragment, I would like to join the two sets together such that “A” and “1” are in the same record, “B” and “2” are in the same record, and “C” and “3” are in the same record.
This is what the Enumerable.Zip extension does in .NET 4. You’d write it like so (assuming that this is the entire
XDocument):If you’re using .NET 3.5 or earlier, it’s not too difficult to write the
Zipextension: