我正在寻找最短的代码来创建方法来对IEnumerable中的项执行常见操作.
例如:
public interface IPupil { string Name { get; set; } int Age { get; set; } }
求和属性 - 例如IEnumerable
平均属性 - 例如IEnumerable
构建CSV字符串 - 例如IEnumerable
我对解决这些例子的各种方法感兴趣:foreach(长手),委托,LINQ,匿名方法等......
对不起的措辞很抱歉,我无法准确描述我追求的是什么!
求和和求平均:LINQ简单易懂:
var sum = pupils.Sum(pupil => pupil.Age); var average = pupils.Average(pupil => pupil.Age);
构建CSV字符串 - 这里有各种选项,包括编写自己的扩展方法.这将工作:
var csv = string.Join(",", pupils.Select(pupil => pupil.Name).ToArray());
请注意,使用普通LINQ在一次传递中计算多个事物(例如平均值和求和)是很棘手的.如果您对此感兴趣,请查看Marc Gravell和我编写的Push LINQ项目.这是一个非常专业的要求.