c# - 将 List<double> 转换为 C# 中的 DataTable 列

标签 c# list datatable

我有 4 个 double 列表,每个列表都包含数据表中单个列的全部值。 说,

List<double> ValuesA = new List<double>(){0.1,0.2,0.3};
List<double> ValuesB = new List<double>(){0.4,0.5,0.6};
List<double> ValuesC = new List<double>(){0.7,0.8,0.9};
List<double> ValuesD = new List<double>(){1.1,1.2,1.3};

我想要一个类似的数据表

0.1  0.4  0.7  1.1
0.2  0.5  0.8  1.2
0.3  0.6  0.9  1.3

我知道总有一种方法使用 for/foreach 循环,但有没有更“聪明”的方法,例如 Linq 查询或其他方法?

最佳答案

有点hacky,但如果你想避免forforeach,那么Linq是一种方法

//determine the max number of rows in case of the List<decimal> are not all equal length
int rows = new[] { ValuesA.Count, ValuesB.Count, ValuesC.Count, ValuesD.Count, }.Max();

Enumerable.Range(0, rows).Select(x => {
    dt.Rows.Add(ValuesA.ElementAtOrDefault(x),
    ValuesB.ElementAtOrDefault(x),
    ValuesC.ElementAtOrDefault(x),
    ValuesD.ElementAtOrDefault(x));
    return true; }).ToList();

https://dotnetfiddle.net/WXIwT7


如果所有列表的长度都相同,请使用 ValuesA.Count

Enumerable.Range(0, ValuesA.Count).Select(x => {dt.Rows.Add(ValuesA[x],ValuesB[x], ValuesC[x],ValuesD[x]);return true;}).ToList();

https://dotnetfiddle.net/NTIb2O

关于c# - 将 List<double> 转换为 C# 中的 DataTable 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50167858/

相关文章:

c# - 将 3D 点映射到 2D 上下文

Python - 从字典中分配和更改列表

javascript - 一页中有两个数据表 - 如何仅滚动其中一个表?

javascript - 我想更改数据表按钮名称

c# - 在不知道结构的情况下将 CSV 读入数据表

c# - new XpsDocument(string, FileAccess) 失败并显示 "File contains corrupted data",即使文件未损坏

c# - 正则表达式问题 C#

c# - 如何在没有 Office.Interop 的情况下读取 'Extended' MS Word 文件标签?

将嵌套列表操作为嵌套分块列表的 Pythonic 方法

python - 我可以通过使用循环使迭代变得更容易吗?