2

我正在寻找最短的代码来创建对 IEnumerable 中的项目执行常见操作的方法。

例如:

public interface IPupil
{
    string Name { get; set; }
    int Age { get; set; }
}
  1. 对属性求和 - 例如 IEnumerable<IPupil> 中的 IPupil.Age
  2. 平均一个属性 - 例如 IEnumerable<IPupil> 中的 IPupil.Age
  3. 构建 CSV 字符串 - 例如 IEnumerable<IPupil> 中的 IPupil.Name

我对解决这些示例的各种方法感兴趣:foreach(长手)、委托、LINQ、匿名方法等......

抱歉措辞不佳,我无法准确描述我所追求的!

4

1 回答 1

7

求和和平均:使用 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项目。这是一个非常专业的要求。

于 2009-01-23T10:43:52.407 回答