2013-06-19 22 views
0

(我不知道是否應該將它們稱爲對象或元素,對不起,如果我輸入了錯誤的名稱)。具有兩個對象的數組的平均值

我有這樣的陣列:

data[] readings; 

如果我想我使用以下的值(i =某些位置):

readings[i].value; 

如果我想要的日期:

readings[i].date; 

如何使用平均方法獲得readings中所有value的平均值?

+0

Duplicate:[如何平均數組輸入](http://stackoverflow.com/questions/5527032/c-sharp-how-to-average-a-array-input) – Romoku

回答

2

你可以使用LINQ爲此,一些沿

var average = readings.Average(r => r.value); 

注線:平均計算數值序列的平均值。 MSDN鏈接:http://msdn.microsoft.com/en-us/library/system.linq.enumerable.average.aspx

+0

是的,我試了幾分鐘以前,但它沒有'工作,它需要一個演員,因爲它說它不能將對象轉換爲浮動。所以我做了這個,現在它工作:'readings.Average(r => Convert.ToDouble(r.value));' – sparcopt

+0

@sparcopt啊,很酷,不知道這是什麼類型,但我很高興它的工作出來了!我會更新答案 – Johan

1

如果data.value是數值型,你可以使用LINQ的Average擴展方法,像這樣:

var averageValue = readings.Average(d => d.value); 

要獲得DateTime的平均值,你可以做同樣的事情,如果你的日期時鐘滴答第一:

var averageDate = new DateTime((long)readings.Average(d => d.date.Ticks)); 
0

嘗試LINQ查詢:

readings.Select(r => r.value).ToList().Average();