我有一个像这样的 csv 文件
A, 22, 23, 12
B, 32, 4, 33
C, 34, 3 ,33
我想打印每行的总和和平均值并跳过第一列。如何在 LINQ 中使用 Lambda 进行操作
var stuff = from l in File.ReadAllLines(filename)
let x = l.Split(new [] {',', ' '}, StringSplitOptions.RemoveEmptyEntries)
.Skip(1)
.Select(s => int.Parse(s))
select new
{
Sum = x.Sum(),
Average = x.Average()
};
如果您正在读取大文件并且内存使用是一个问题,那么使用 .NET 4 可以更好地执行以下操作:
var stuff = from l in File.ReadLines(filename)
let x = l.Split(new [] {',', ' '}, StringSplitOptions.RemoveEmptyEntries)
.Skip(1)
.Select(s => int.Parse(s))
select new
{
Sum = x.Sum(),
Average = x.Average()
};
在这两种情况下,stuff
变量包含一个枚举,在您开始读取它之前,该枚举实际上不会被执行(例如在foreach
loop).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)