如何计算arraylist中特定间隔集的平均值?

时间:2016-05-07 11:43:02

标签: c# arraylist average intervals

我正在尝试在数组列表中识别大于200的值,并计算每个区间的这些值的平均值。我的数组列表是,

List<int> numlist = new List<int>();

它包含值

numlist.Add(50);
numlist.Add(67);
numlist.Add(98);
numlist.Add(150);
numlist.Add(230);
numlist.Add(250);
numlist.Add(260);
numlist.Add(87);
numlist.Add(98);
numlist.Add(201);
numlist.Add(254);
numlist.Add(164);

如您所见,第一组大于200的连续值是230,250和260.第二组值是201和254.

我想遍历数组列表并分别识别这两个集合,然后计算它们的平均值。

平均1:(230 + 250 + 260)/ 3

平均2:(201 + 254)/ 2

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

这段代码应该达到你想要的效果,它会生成另一个列表,其中包含超过200的连续numList条目的所有平均值(但不等于200!);

        var sum = 0;
        var count = 0;
        var averages = new List<double>();
        foreach (var t in numlist)
        {
            if (t > 200)
            {
                sum += t;
                count += 1;
            }
            else
            {
                if (sum == 0) continue;
                var average = (double) sum/count;
                averages.Add(average);
                sum = 0;
                count = 0;
            }
        }