Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何转换字典<;字符串,列表<;对象>&燃气轮机;进入C#中的数据表?_C#_.net - Fatal编程技术网

如何转换字典<;字符串,列表<;对象>&燃气轮机;进入C#中的数据表?

如何转换字典<;字符串,列表<;对象>&燃气轮机;进入C#中的数据表?,c#,.net,C#,.net,我有一个Dictionary,它AFValues是AFValue对象类型的集合 字典数据结构幕后的快照: 每个键的值具有以下AFValues集合: 然后,这就是我到目前为止编写的将字典转换为数据表的内容 private DataTable dataTable = null; private DataTable ConvertToDataTable(Dictionary<string, AFValues> dict) { using

我有一个
Dictionary
,它
AFValues
是AFValue对象类型的集合

字典数据结构幕后的快照:

每个
键的
具有以下
AFValues
集合:

然后,这就是我到目前为止编写的将字典转换为数据表的内容

private DataTable dataTable = null;    
private DataTable ConvertToDataTable(Dictionary<string, AFValues> dict)
        {
            using (dataTable = new DataTable())
            {
                if (dict.Count > 0)
                {
                    var headers = dict.Keys;
                    foreach (var colHeader in headers)
                    {
                        dataTable.Columns.Add(colHeader);
                    }

                    foreach (var row in dict)
                    {
                        DataRow dataRow = dataTable.NewRow();
                        foreach (var afVal in row.Value)
                        {
                            dataRow[row.Key] = afVal.Value;
                        }
                        dataTable.Rows.Add(dataRow);
                    }
                }
            }
            return dataTable;
        }
private DataTable=null;
专用数据表ConvertToDataTable(字典目录)
{
使用(dataTable=newdatatable())
{
如果(dict.Count>0)
{
变量头=指令键;
foreach(标头中的var colHeader)
{
dataTable.Columns.Add(colHeader);
}
foreach(dict中的var行)
{
DataRow DataRow=dataTable.NewRow();
foreach(行中的var afVal.Value)
{
dataRow[row.Key]=afVal.Value;
}
dataTable.Rows.Add(dataRow);
}
}
}
返回数据表;
}
我已经基于相当简单的
dict.Keys
成功地创建了
DataTable
列。但是,我的问题在于如何正确循环
AFValue
,并将每个
AFValue
映射到相应的列(
dict.Key

我已经做了研究,但找不到与我相同的相关场景

这是返回的
数据表
,基于上面不正确的代码

这应该是预期的输出(示例表)


非常感谢您的帮助。

您可以将这样的代码块用于内部循环:

for (int i = 0; i < dict.Values.Max(item => item.Count()); i++)
{
    DataRow dataRow = dataTable.NewRow();

    foreach (var key in dict.Keys)
    {
        if (dict[key].Count > i)
            dataRow[key] = dict[key][i];
    }
    dataTable.Rows.Add(dataRow);
}
for(int i=0;iitem.Count());i++)
{
DataRow DataRow=dataTable.NewRow();
foreach(dict.Keys中的var键)
{
if(dict[key].Count>i)
dataRow[key]=dict[key][i];
}
dataTable.Rows.Add(dataRow);
}

不能使用
块使用
。如果您离开using块,
数据表
将被处理。@PinBack感谢您的关注。你是对的。我不需要
using
块,因为我需要返回结果。这一块非常有用,谢谢,非常感谢。