Получение среднего значения данных наблюдаемого элемента коллекции - PullRequest
1 голос
/ 13 октября 2011

У меня есть наблюдаемая коллекция, содержащая 60 элементов, каждый из которых содержит данные чисел (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;

    }
}

1 Ответ

3 голосов
/ 13 октября 2011

Вы можете использовать метод расширения Average() LINQ-to-Objects:

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