利用LINQ的GroupBy和Count方法进行数据聚合
LINQ中的GroupBy操作符是根据指定键聚合数据的强大工具。结合Count()方法,它可以用来统计分组值的出现次数。
假设以下场景:您有一个名为UserInfo的数据集,其中包含用户的指标和其他信息记录。要检索指标出现次数,您需要按指标对数据进行分组,并计算每个分组中的记录数。
<code class="language-c#">// 示例数据集 List<userinfo> data = new List<userinfo> { new UserInfo { Name = "joe", Metric = 1, Day = "01/01/2011" }, new UserInfo { Name = "jane", Metric = 0, Day = "01/02/2011" }, new UserInfo { Name = "john", Metric = 2, Day = "01/03/2011" }, new UserInfo { Name = "jim", Metric = 3, Day = "01/04/2011" } };</code>
以下是使用LINQ的GroupBy和Count来实现预期结果的方法:
<code class="language-c#">var metricCounts = data.GroupBy(info => info.Metric) .Select(group => new { Metric = group.Key, Count = group.Count() }) .OrderBy(x => x.Metric); foreach (var line in metricCounts) { Console.WriteLine($"{line.Metric} {line.Count}"); }</code>
在此代码中,GroupBy()操作符按Metric属性对数据进行分组,创建一个IEnumerable
此代码的输出将是:
<code>0 1 1 1 2 1 3 1</code>
这演示了如何使用LINQ通过分组和计数值来有效地检索聚合数据。通过理解GroupBy和Count的使用,您可以有效地操作和汇总应用程序中的数据。
请注意,示例数据中Metric=0 的计数在原文和修改后的版本中有所不同,这可能是原文的错误。 修改后的版本更符合代码的输出结果。
以上是如何使用LINQ的GroupBy和Count方法进行数据聚合?的详细内容。更多信息请关注PHP中文网其他相关文章!