Моя таблица \ класс сетки представлена двумя свойствами:
public class MyTable
{
public IEnumerable<string> Columns {get;set;}
public IEnumerable<IEnumerable<string>> Rows {get;set;}
}
Итак, допустим, у меня есть следующая таблица \ grid:
ColumnA ColumnB Column C
A1 B1 C1
A2 B2 C2
A3 B3 C3
Она будет представлена этими двумя свойства следующие:
Columns = new List<string> {"ColumnA", "ColumnB", "ColumnC"};
Rows = new List<IEnumerable<string>>
{
new List<string>("A1", "B1", "C1"),
new List<string>("A2", "B2", "C2"),
new List<string>("A3", "B3", "C3"),
};
До сих пор объединение двух таких таблиц было очень простым и эффективным, я просто использовал «Concat ()» между их свойствами Rows и получил их таблицу «Merged» со всеми data.
Теперь мой вопрос: если мне нужно объединить две такие таблицы с различными столбцами , как я могу объединить их наиболее эффективным способом? ?
Пример объединения с разными столбцами:
- Первая таблица:
ColumnA ColumnB Column C
A1 B1 C1
A2 B2 C2
A3 B3 C3
Второй стол:
ColumnB Column D
B4 D4
B5 D5
B6 D6
Их "объединенная" таблица должна быть:
ColumnA ColumnB ColumnC ColumnD
A1 B1 C1 null
A2 B2 C2 null
A3 B3 C3 null
null B4 null D4
null B5 null D5
null B6 null D6
И, конечно, она должна быть представлена свойствами "Columns" и "Rows" следующим образом:
Columns = new List<string> {"ColumnA", "ColumnB", "ColumnC", "ColumnD"};
Rows = new List<IEnumerable<string>>
{
new List<string>{"A1", "B1", "C1", null},
new List<string>{"A2", "B2", "C2", null},
new List<string>{"A3", "B3", "C3", null},
new List<string>{null, "B4", null, "D4"},
new List<string>{null, "B5", null, "D5"},
new List<string>{null, "B6", null, "D6"}
};
Какой самый эффективный способ сделать это?
Заранее спасибо.