Ранее я задавал вопрос о слиянии известного числа словарей в одну таблицу DataTable: Словари в DataTable
Дарин предоставил мне удовлетворительное решение проблемы.
Но мой набор проблем развился. Я не могу долго быть уверенным в количестве словарей, которые мне поставляют. На самом деле это может быть любое число от 1 до 10.
Из-за этого словари поставляются мне в сборнике, а именно:
IList<IDictionary<string, string>>
Решение для статического количества словарей было дано следующим образом:
var dic1 = new Dictionary()
{
{ "A", "s" },
{ "B", "d" },
{ "C", "a" },
{ "D", "w" },
};
var dic2 = new Dictionary()
{
{ "A", "z" },
{ "B", "e" },
{ "C", "r" },
{ "D", "t" },
};
var dic3 = new Dictionary()
{
{ "A", "i" },
{ "B", "o" },
{ "C", "u" },
{ "D", "p" },
};
var table = new DataTable();
table.Columns.Add("K", typeof(string));
table.Columns.Add("c1", typeof(string));
table.Columns.Add("c2", typeof(string));
table.Columns.Add("c3", typeof(string));
foreach (var key in dic1.Keys)
{
table.Rows.Add(key, dic1[key], dic2[key], dic3[key]);
}
Теперь, как я могу заставить этот код работать с различным количеством словарей (особенно часть Rows.Add (xxx), поскольку каждый столбец в этой строке по сути является значением словаря)