对每一列取平均
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
var x = new List<List<double>> {
new List<double> {3, 6, 9},
new List<double> {6, 7.5, 9},
new List<double> {9, 9, 9}
};
int cols = x[0].Count;
var averages = Enumerable.Range(0, cols)
.Select(i => x.Average(row => row[i]))
.ToList();
Console.WriteLine(string.Join(", ", averages)); // 输出:6, 7.5, 9
}
}
代码说明:
Enumerable.Range(0, cols) 生成所有列的索引号。
x.Average(row => row[i]) 对每一列同位置的数字取平均。
.ToList() 结果转为List<double>。
这种方式非常适合对“列表的每一个index取平均”这种场景!
对每一行取平均
var averages = Enumerable.Range(0, rowCount)
.Select(i => x[i].Average())
.ToList();随机排列
var seq = Enumerable.Range(0, TaskDurations.Length).OrderBy(x => rand.Next()).ToArray();