Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何计算arraylist中特定间隔集的平均值?_C#_Arraylist_Average_Intervals - Fatal编程技术网

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

C# 如何计算arraylist中特定间隔集的平均值?,c#,arraylist,average,intervals,C#,Arraylist,Average,Intervals,我试图识别数组列表中大于200的值,并计算每个间隔的平均值。我的数组列表是 List<int> numlist = new List<int>(); 如您所见,大于200的第一组连续值是230250和260。第二组值是201和254 我想循环遍历数组列表,分别识别这两个集合,然后计算它们的平均值 平均值1:(230+250+260)/3 平均值2:(201+254)/2 如何实现这一点?此代码应该可以实现您想要的,它将生成另一个列表,其中包含超过200个(但不等于200

我试图识别数组列表中大于200的值,并计算每个间隔的平均值。我的数组列表是

List<int> numlist = new List<int>();
如您所见,大于200的第一组连续值是230250和260。第二组值是201和254

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

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

平均值2:(201+254)/2


如何实现这一点?

此代码应该可以实现您想要的,它将生成另一个列表,其中包含超过200个(但不等于200!)的连续numList条目的所有平均值

var总和=0;
var计数=0;
var平均值=新列表();
foreach(numlist中的变量t)
{
如果(t>200)
{
总和+=t;
计数+=1;
}
其他的
{
如果(和=0)继续;
var平均值=(双)总和/计数;
平均数。加上(平均数);
总和=0;
计数=0;
}
}

此代码应该可以实现您想要的功能,它将生成另一个列表,其中包含超过200(但不等于200!)的连续numList条目的所有平均值

var总和=0;
var计数=0;
var平均值=新列表();
foreach(numlist中的变量t)
{
如果(t>200)
{
总和+=t;
计数+=1;
}
其他的
{
如果(和=0)继续;
var平均值=(双)总和/计数;
平均数。加上(平均数);
总和=0;
计数=0;
}
}

如果(sum==0)继续,您能解释一下是什么;Does这是决定您是否已达到超过200的新代码序列的代码。如果sum为0,那么您还没有开始新的平均值,因此它将跳过后面的所有内容,并移动到numlist中的下一个值。如果(sum==0)继续,您能解释一下什么吗;Does这是决定您是否已达到超过200的新代码序列的代码。如果sum为0,那么您还没有开始新的平均值,因此它将跳过后面的所有内容,并移动到numlist中的下一个值
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);
        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;
            }
        }