平均DataTable中的每一列

时间:2014-09-29 13:18:32

标签: c# linq datatable

我目前正在使用以下LINQ语句从我的DataTable中提取某些数据

var possibleRows = _Data.Select("Distance > " + (location.Distance - delta) + " AND Distance < " + (location.Distance + delta));

我想最终得到一个DataRow,它包含上面select语句中每个列的平均值,而不必遍历每一列。我有超过100列,所有数据都是数字。有一种简单的方法可以做到这一点吗?

1 个答案:

答案 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<>,其中列表中的每个项目都包含列和该列的平均值。