如何获取集合的子集以计算集合中某些值的最小值,最大值和平均值

时间:2014-02-24 13:33:35

标签: c# .net visual-studio-2010 collections

我在C#中有一个这样的集合:

Collection<double> temp = new Collection<double>();

我需要计算集合中从特定索引到集合末尾的最大值,最小值和平均值。例如,从集合中的第10个项目到最后一个项目。

我使用temp.Max();temp.Min();temp.Average();来计算整个集合中的这些值,但我不知道如何对集合中的某些值执行此操作。

非常感谢你的帮助!

2 个答案:

答案 0 :(得分:4)

只需skip个项目数,然后应用如下的聚合函数!

var startIndex = 10; // zero-based, say
var max = temp.Skip(startIndex).Max();
var min = temp.Skip(startIndex).Min();
var avg = temp.Skip(startIndex).Average();

答案 1 :(得分:3)

假设您想要计算从索引3开始的值的平均值

values.Skip(3).Average();

假设您要计算索引3和7(含)之间的平均值

values.Skip(3).Take(5).Average();