我目前正在使用以下LINQ语句从我的DataTable中提取某些数据
var possibleRows = _Data.Select("Distance > " + (location.Distance - delta) + " AND Distance < " + (location.Distance + delta));
我想最终得到一个DataRow,它包含上面select语句中每个列的平均值,而不必遍历每一列。我有超过100列,所有数据都是数字。有一种简单的方法可以做到这一点吗?
答案 0 :(得分:0)
您可以执行以下操作:
var rows = possibleRows.Cast<DataRow>();
var averages = table.Columns.Cast<DataColumn>()
.Select(col => new {
Column = col,
Average = rows.Average(row => (double)row[col])
}).ToList();
请注意,这始终为double
。
请注意,这不会导致DataRow
;它会产生List<>
,其中列表中的每个项目都包含列和该列的平均值。