我不確定CopyMost是否是在此使用的正確術語,但它是我使用的客戶端(「CopyMost數據協議」)的術語。聽起來像他想要的模式?我有一組數據:LINQ(模式)中的返回模態平均值
Increment Value
.02 1
.04 1
.06 1
.08 2
.10 2
我需要返回哪個值出現最「CopyMost」。在這種情況下,值是1.現在我已經計劃爲IEnumerable編寫一個擴展方法來爲整數值執行此操作。 Linq內置了哪些已經很容易實現的功能?抑或是最適合我寫這將是這個樣子
records.CopyMost(x => x.Value);
編輯
看起來像我期待的模態平均的擴展方法。我已經提供了一個更新的答案,允許一個tiebreaker條件。它的意思是像這樣使用,並且是通用的。
records.CopyMost(x => x.Value, x => x == 0);
在這種情況下x.Value將是int,如果0的計數是一樣的1秒和3秒的計數,這將搶七的0
除了1.「group 1 by item.Value into g」之外,這一切都是有道理的。爲什麼是1?爲什麼不是項目?我測試過,他們都得到相同的結果。我知道1因爲某種原因可能更好,但我想明白爲什麼。 – jsmith 2010-06-24 15:16:39
@jsmith:只是爲了表明你真的不關心組內的值。你甚至可以使用'(byte)1'來提高效率:) – 2010-06-24 15:18:15
那麼如果我使用不同的值,比如'group 2',會發生什麼? – msarchet 2010-06-24 15:25:44