Как использовать LINQ для объединения двух или более коллекций в одну коллекцию

У меня есть три коллекции

var col1 = new {Name1 = "Frank", ID1 = 123, ABC = "abc"};
var col2 = new {Name2 = "Harry", ID2 = 456, XYZ = "xyz"};
var col3 = new {Name3 = "Bob"};

Я хочу создать четвертую коллекцию, которая объединит эти три коллекции.

Используя три коллекции в качестве примера, я бы хотел, чтобы четвертая коллекция "выглядела" так:

+===================+
| FirstName | Ident |
+===================+
| Frank     | 123   |
+-------------------+
| Harry     | 456   |
+-------------------+
| Bob       |       |
+-------------------+

Я даже не знаю, возможно ли это, но я пытаюсь понять, могу ли я использовать LINQ для объединения таблиц путем сопоставления полей col1, col2 и col3 с полями четвертой коллекции.

Псевдокод, надеюсь, проясняет то, что я пытаюсь объяснить:

var col4 = from c1 in col1, c2 in col2, c3 in col3
     select new {FirstName = (c1.Name1, c2.Name2, c3.Name3), Ident = (c1.ID1, c2.ID2);

Если это возможно, как я могу это сделать?

5
задан Jed 19 November 2011 в 00:25
поделиться