使用在C#

时间:2018-10-27 11:56:17

标签: c# list collections datatable

我有一些字典,其键值如下Dic1(Name,Anu),Dic2(Age,22),Dic3(Name,Cas),Dic4(Age,25),Dic5(Sex,Male)。我想创建一个以名称,年龄和性别作为列标题的数据表,并以相应的值作为行数据进行映射。

姓名年龄性别 阿努22空 Cas 25男

1 个答案:

答案 0 :(得分:2)

您应分别添加DataColumnDataRow,以下方法基于sampleList集合转换为DataTable,并根据您的要求更改列自己的问题。

static DataTable Convert(List<string[]> list)
{
    DataTable table = new DataTable();
    int columns = 0;
    foreach (var array in list)
    {
        if (array.Length > columns)
        {
            columns = array.Length;
        }
    }
    for (int i = 0; i < columns; i++)
    {
        table.Columns.Add();
    }
    foreach (var array in list)
    {
        table.Rows.Add(array);
    }
    return table;
}

您可以通过以下示例方法来调用该方法:

static void sample()
{
    List<string[]> list = new List<string[]>();
    list.Add(new string[] { "Column 1", "Column 2", "Column 3" });
    list.Add(new string[] { "Row 2", "Row 2" });
    list.Add(new string[] { "Row 3" });

    DataTable table = Convert(list);
    dataGridView1.DataSource = table;
}