我有 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,但如果你想避免for
和foreach
,那么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();
关于c# - 将 List<double> 转换为 C# 中的 DataTable 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50167858/