早些时候,我问了一个关于将已知数量的字典合并为一个单一数据表的问题:
Dictionaries in 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]);
}
现在,我如何使这个代码适用于不同数量的字典(尤其是行。添加(xxx)部分,因为该行中的每一列本质上都是字典的值)