利用LINQ高效率分組與計數資料
C#中的LINQ(語言整合查詢)提供了一種強大的方法來操作和查詢資料。在需要分組和計數資料集的情況下,LINQ提供了一個簡潔且有效率的解決方案。
假設我們有一個包含使用者及其相關指標和日期的資料集:
<code>UserInfo(姓名, 指标, 日期, 其他指标) 数据: joe 1 2011/01/01 5 jane 0 2011/01/02 9 john 2 2011/01/03 0 jim 3 2011/01/04 1 jean 1 2011/01/05 3 jill 2 2011/01/06 5 jeb 0 2011/01/07 3 jenn 0 2011/01/08 7</code>
我們的目標是取得一個表格,依指標順序(0, 1, 2, 3...)分組,並顯示每個指標出現的總次數。
使用LINQ進行分組和計數
使用LINQ來達成此目標,我們可以使用'GroupBy'和'Select'方法:
<code>foreach(var line in data.GroupBy(info => info.metric) .Select(group => new { Metric = group.Key, Count = group.Count() }) .OrderBy(x => x.Metric)) { Console.WriteLine("{0} {1}", line.Metric, line.Count); }</code>
說明:
輸出:
<code>0 3 1 2 2 2 3 1</code>
另一種方法
雖然提供的LINQ解決方案效率很高,但可以進一步簡化:
<code>var result = data.GroupBy(info => info.metric) .Select(group => new { Metric = group.Key, Count = group.Count() }) .OrderBy(x => x.Metric);</code>
這裡的唯一區別是,我們沒有使用'foreach'循環迭代結果,而是將其賦值給名為'result'的變數。
關鍵點
以上是LINQ 如何有效率地將資料分組並統計出現次數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!