2015-12-04 175 views
-8

我怎麼能計算其內容下面描述從給定列表的平均值爲:C#時間平均

06:56 
06:58 
06:55 
06:54 
06:54 
06:53 
06:55 
06:53 
06:58 
06:54 
06:58 
06:55 
06:54 
06:50 
06:54 
06:57 

任何想法?!?

+2

這個列表是如何聲明的?哪一種「類型」? – Sybren

+0

在C#中有一行代碼,不要發貼,我們會盡力幫助你,如果有什麼東西不起作用... –

+0

將它轉換爲小數(整小時,小數分鐘),然後平均那。 –

回答

2

將值轉換爲TimeSpan。您可以直接將輸出平均爲正確的數據類型。

附錄

從@gabba提供一個字符串列表及以上使用蜱的鏈接添加到答案,就可以計算出平均是這樣的:

TimeSpan average = new TimeSpan(Convert.ToInt64(times.Average(x => TimeSpan.Parse(x).Ticks))); 

的結果值,當然也是一樣的:06:54:52.500

+0

謝謝大家!我會嘗試你建議的東西。 – jep

9
 var times = new List<string> 
     { 
      "06:56", 
      "06:58", 
      "06:55", 
      "06:54", 
      "06:54", 
      "06:53", 
      "06:55", 
      "06:53", 
      "06:58", 
      "06:54", 
      "06:58", 
      "06:55", 
      "06:54", 
      "06:50", 
      "06:54", 
      "06:57" 
     }; 
     var average = times 
      .Select(TimeSpan.Parse) 
      .Average(x => x.TotalMilliseconds); 

     var averageTime = TimeSpan.FromMilliseconds(average); 
+1

這裏有一個變化:[查找時間段集合的平均值] http://stackoverflow.com/a/8847711/3527297其中的平均值(雖然不適用於此處的示例數據)可能會提供更高的亞秒精度值。 – Gustav