gpt4 book ai didi

c# - 如何在 C# 中将 Dictionary> 转换为 DataTable?

转载 作者:行者123 更新时间:2023-12-04 12:45:23 26 4
gpt4 key购买 nike

我有一个 Dictionary<string, AFValues>其中AFValues是 AFValue 对象类型的集合。

字典数据结构背后的快照:
enter image description here
Value每个Key有这个AFValues收藏:
enter image description here

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

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;
}

我已经成功创建了 DataTable基于 dict.Keys 的列这是相当简单的。但是,我的问题在于如何正确循环 AFValues并映射每个 AFValue到他们相应的列( dict.Key )?

我已经完成了我的研究,但找不到任何与我相同的相关场景。

这是返回的 DataTable基于上面不正确的代码。

enter image description here

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

enter image description here

任何帮助是极大的赞赏。

最佳答案

您可以在内部循环中使用这样的代码块:

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);
}

关于c# - 如何在 C# 中将 Dictionary<string, List<object>> 转换为 DataTable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44671690/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com