2011-10-13 52 views
0

我有一個包含60個元素的observablecollection,每個元素都包含數字的數據(double)。我想獲得60個元素的平均值((總共60個元素)/ 60)。任何想法如何我可以去做呢?獲取可觀察的收集元素數據的平均值

這裏是我的代碼:

public class MainWindow : Window 
{    
    DispatcherTimer timer = new DispatcherTimer(); 
    double i = 0; 
    ObservableCollection<KeyValuePair<double, double>> Power = new ObservableCollection<KeyValuePair<double, double>>(); 

    public MainWindow() 
    { 
     InitializeComponent(); 

     timer.Interval = new TimeSpan(0, 0, 1); // per 5 seconds, you could change it 
     timer.Tick += new EventHandler(timer_Tick); 
     timer.IsEnabled = true; 
    } 

Random random = new Random(DateTime.Now.Millisecond); 

    void timer_Tick(object sender, EventArgs e) 
    { 

     Power.Add(new KeyValuePair<double, double>(i, random.NextDouble())); 
     i += 5; 

    } 
} 

回答

3

可以使用Average() LINQ到對象擴展方法:

var avg = Power.Average(x => x.Value);