2016-05-07 7 views
1

私は配列リストで200より大きい値を識別しようとしており、各間隔のこれらの値の平均を計算しています。あなたが見ることができるように私の配列リストは、arraylistの特定の区間の平均値を計算するにはどうすればよいですか?

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です。

私は配列リストをループして、これらの2つのセットを別々に識別し、その平均を計算します。

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

平均2:(201 + 254)/ 2

私はこれをどのように達成することができますか?

答えて

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; 
      } 
     } 
+0

if(sum == 0)を続行することはできますか。 – coder

+0

これは200以上の新しいコードシーケンスに達したかどうかを判断するコードです。sumが0の場合は新しい平均を開始していないので、それ以降のすべてをスキップしてnumlistの次の値に移動します –

関連する問題