2011-10-13 3 views
0

J'ai une collection observablec contenant 60 éléments, chacun contenant des données de nombres (doubles). Je voudrais obtenir la moyenne des 60 éléments ((somme totale de 60 éléments)/60). Une idée de comment je peux y aller?Obtention de la moyenne des données d'éléments de collection observables

Voici mon code:

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; 

    } 
} 

Répondre

3

Vous pouvez utiliser le Average() LINQ to Objects méthode d'extension:

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