如何计算数组列表中特定间隔集的平均值?
How to calculate averages of particular set of intervals in an arraylist?
我正在尝试识别数组列表中大于 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
我怎样才能做到这一点?
这段代码应该能达到你想要的效果,它会生成另一个列表,其中包含超过 200(但不等于 200!)的连续 numList 条目的所有平均值;
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;
}
}
我正在尝试识别数组列表中大于 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
我怎样才能做到这一点?
这段代码应该能达到你想要的效果,它会生成另一个列表,其中包含超过 200(但不等于 200!)的连续 numList 条目的所有平均值;
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;
}
}