2016-05-07 6 views
1

Я пытаюсь определить значения, которые больше 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 составляет 230250 и 260. Второй набор значения равны 201 и 254.

Я хочу прокрутить список массивов и определить эти два набора отдельно, а затем вычислить их средние значения.

средние 1: (230 + 250 + 260)/3

средний 2: (201 + 254)/2

Как можно достичь этого?

ответ

0

Этот код должен достигать того, что вы хотите, он будет создавать другой список, содержащий все усредненные значения последовательных записей numList более 200 (но не равных 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; 
      } 
     } 
+0

Вы можете объяснить, что, если (сумма == 0) продолжить; – coder

+0

Это код, который решает, достигли ли вы новой последовательности кода более 200. Если сумма равна 0, вы не запустили новое среднее значение, и поэтому оно пропускает все, что следует, и переходит к следующему значению в числовом списке –

Смежные вопросы