LINQ資料聚合與分組:高效率方法詳解
LINQ(語言整合查詢)提供了一種強大且簡潔的方法,用於在各種場景中查詢和操作資料。其中一項常見任務是根據特定條件將資料分組,並計算每個分組中的出現次數。
使用LINQ進行資料分組與計數
假設有一個名為UserInfo的資料集,包含name、metric、day和other_metric等欄位。要按metric值排序並取得metric的計數,可以使用以下LINQ語法:
<code class="language-csharp">var groupMetrics = from info in data // 从数据源开始 group info by info.metric into grp // 按'metric'字段分组 select new { Key = grp.Key, Count = grp.Count() }; // 选择键和计数</code>
此查詢執行以下操作:
執行此查詢後,您將獲得一個包含metric值及其對應計數的列表,從而提供資料集內metric分佈的摘要。
自訂分組結果
上述解決方案使用匿名類型來建構分組結果。但是,您也可以定義一個自訂類別來表示分組數據,以便更好地控制輸出格式。
其他解
原始問題中提到了一種使用LINQ to SQL的替代方法:
<code class="language-csharp">var pl = from r in info orderby r.metric group r by r.metric into grp select new { key = grp.Key, cnt = grp.Count()};</code>
雖然這兩種解決方案都實現了按metric分組和計數出現次數的目標,但LINQ to SQL語法專門用於查詢資料庫,而純LINQ語法可以應用於任何UserInfo物件的枚舉集合。選擇哪種方法取決於您正在使用的上下文和資料來源。
以上是LINQ 如何有效地將資料分組並計算每個組內的出現次數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!