`
hao84099
  • 浏览: 29234 次
  • 性别: Icon_minigender_1
  • 来自: 山西
社区版块
存档分类
最新评论

<转>Linq使用Group By

 
阅读更多

1.简单形式:

    var q =
    from p in db.Products
    group p by p.CategoryID into g
    select g; 

 

语句描述:Linq使用Group By按CategoryID划分产品。

说明:from p in db.Products 表示从表中将产品对象取出来。group p by p.CategoryID into g表示对p按CategoryID字段归类。其结果命名为g,一旦重新命名,p的作用域就结束了,所以,最后select时,只能select g。

2.最大值

    var q =
    from p in db.Products
    group p by p.CategoryID into g
    select new {
    g.Key,
    MaxPrice = g.Max(p => p.UnitPrice)
    }; 

 

语句描述:Linq使用Group By和Max查找每个CategoryID的最高单价。

说明:先按CategoryID归类,判断各个分类产品中单价最大的Products。取出CategoryID值,并把UnitPrice值赋给MaxPrice。

3.最小值

    var q =
    from p in db.Products
    group p by p.CategoryID into g
    select new {
    g.Key,
    MinPrice = g.Min(p => p.UnitPrice)
    }; 

 

语句描述:Linq使用Group By和Min查找每个CategoryID的最低单价。

说明:先按CategoryID归类,判断各个分类产品中单价最小的Products。取出CategoryID值,并把UnitPrice值赋给MinPrice。

4.平均值

    var q =
    from p in db.Products
    group p by p.CategoryID into g
    select new {
    g.Key,
    AveragePrice = g.Average(p => p.UnitPrice)
    }; 

 

语句描述:Linq使用Group By和Average得到每个CategoryID的平均单价。

说明:先按CategoryID归类,取出CategoryID值和各个分类产品中单价的平均值。

5.求和

    var q =
    from p in db.Products
    group p by p.CategoryID into g
    select new {
    g.Key,
    TotalPrice = g.Sum(p => p.UnitPrice)
    }; 

 

分享到:
评论

相关推荐

    List 里面各种关于Linq用法总结

    var groupedPeople = people.GroupBy(p =&gt; p.Name); ``` 9. **Join()与GroupJoin()** Join()用于连接两个列表,基于它们之间的关联。GroupJoin()则用于左连接,返回一个组,其中包含所有左侧元素及其相关的右侧...

    C# List实现行转列的通用方案

    var dynamicLinq = list.GroupBy(GetGroupByClause(DimensionList)); var result = dynamicLinq.Select(GetSelectClause(allColumns)).ToList(); return result; } ``` 4. GetAllColumns方法的实现 ...

    LINQ vb.net - Sample Queries实例

    Group book By Key = author.&lt;first&gt;.Value & " " & author.&lt;last&gt;.Value _ Into authorGroup = Group _ Select &lt;p&gt;&lt;%= "Author: " & Key %&gt;&lt;%= GetBooksTable(authorGroup) %&gt;&lt;/p&gt; Dim result = &lt;html&gt;&...

    Linq Grouping GroupBy 用法详解

    `GroupBy`返回的是一个`IGrouping&lt;TKey, TElement&gt;`的集合,其中`TKey`是分组键的类型,`TElement`是原始元素的类型。你可以通过遍历这个集合来访问每个分组,并通过`Key`属性获取分组键: ```csharp foreach (var ...

    Linq的使用.docx

    group q by q.Field&lt;string&gt;("Name") into g select new { Name = g.Key, Num = dt2.AsEnumerable() .Where(r =&gt; r.Field&lt;string&gt;("Name") == g.Key) .Sum(r =&gt; r.Field&lt;double&gt;("Number")) }; ``` 这里,...

    Linq中GroupBy方法的使用总结.

    Linq中GroupBy方法的使用总结 Linq 中的 GroupBy 方法是对数据进行分组的操作,通常用于对一个或多个字段进行分组,求其总和、均值等。下面我们来详细介绍 Linq 中 GroupBy 方法的使用。 一、基本使用 在 Linq 中...

    C# 中的GroupBy的动态拼接问题及GroupBy用法介绍

    废话不多说了,直接给大家贴代码了,具体代码如下所示: public class Person { public string FirstName{set;get;} public string LastName{set;...List&lt;Person&gt; personList=new List&lt;Person&gt;(); personList.Add

    linq示例代码 最全最好的C#linq教程

    var groupedStudents = students.GroupBy(s =&gt; s.Grade); ``` 5. 联接查询:使用`Join()`和`GroupJoin()`进行内连接和左连接。 ```csharp List&lt;Course&gt; courses = new List&lt;Course&gt;() { ... }; List&lt;Student&gt; ...

    C#在LINQ中使用GroupBy

    public static IEnumerable&lt;IGrouping&lt;TKey, TSource&gt;&gt; GroupBy&lt;TSource, TKey&gt;(this IEnumerable&lt;TSource&gt; source, Func&lt;TSource, TKey&gt; keySelector, IEqualityComparer&lt;TKey&gt; comparer); ``` 这种方法比第一种...

    Linq动态查询、行转列

    .GroupBy(row =&gt; row.Field&lt;string&gt;("Category")) .Select(group =&gt; new { Category = group.Key, Products = group.Select(row =&gt; row.Field&lt;string&gt;("ProductName")).ToArray() }); ``` 这段代码将数据表...

    完整linq语法

    - `group te by new { a.Field&lt;int&gt;("x"), a.Field&lt;int&gt;("y") } into g`:这个子句对结果进行分组。分组依据是`a.Field&lt;int&gt;("x")`和`a.Field&lt;int&gt;("y")`的组合。分组后的结果存储在`g`中。 **5. `select`子句** -...

    报告如何使用aspnet mvc查询生成器向gridview扩展t624853提供数据.zip

    这个类可以包含一系列方法,如Where、Orderby、GroupBy等,这些方法将用于构建查询条件。例如: ```csharp public class QueryBuilder { private List&lt;Expression&lt;Func&lt;T, bool&gt;&gt;&gt; _filters; // 其他属性和构造...

    Linq基础学习资料,通俗易懂

    - **GroupBy 分组**:根据键将集合分组。 - **Join 联合查询**:将两个集合进行联合查询。 - **GroupJoin**:用于创建一个外联接查询。 - **Take 获取集合的前n个元素**:获取集合的前n个元素。 - **Skip 跳过集合的...

    C#列表集合的测试用例

    3. **分组**:使用LINQ的`GroupBy`方法对数据进行分组,如根据数字的奇偶性分组:`var groupedNumbers = numbers.GroupBy(n =&gt; n % 2 == 0);` 4. **并集、交集、差集**:`Union`, `Intersect` 和 `Except` 方法用于...

    nbearlite

    NBearLite 实现了一套类似LINQ的强类型数据库查询语法(支持从简单的CRUD查询到GroupBy、InnerJoin,Paging,SubQuery等常用复杂查询)。NBearLite提供的代码生成工具还可以为您自动生成所有的存储过程调用包装代码,...

    关于c# 2008 里linq

    - **查询操作符**:LINQ提供了一系列查询操作符,如`Select`(映射)、`Where`(过滤)、`GroupBy`(分组)、`Join`(连接)和`OrderBy`(排序)等,它们用于构建查询表达式。 **3. LINQ的应用场景** - **数据库...

    LINQ查询符列表[文].pdf

    - **Union&lt;&gt;()**: 返回两个序列的并集,去除重复项。 - **Intersect&lt;&gt;()**: 返回两个序列的交集。 - **Count&lt;&gt;()**: 计算满足条件的元素数量。 - **Sum&lt;&gt;()**: 计算序列中所有元素的总和。 - **Min&lt;&gt;()**: 获取序列...

    c# 4collection

    例如,可以使用Linq的Select、Where和GroupBy等方法对集合进行过滤、投影和分组。 5. 可空引用类型: 在C# 4.0中,引入了可空引用类型特性,允许引用类型值为null。这对于处理可能为空的集合元素尤为重要,可以避免...

    Linq to object

    这些操作符允许开发者执行复杂的查询操作,如筛选(`Where`)、投影(`Select`)、分组(`GroupBy`)等。大多数标准查询操作符是扩展方法,可以直接在实现了`IEnumerable&lt;T&gt;`的实例上使用。 #### 代码演示 下面的示例...

Global site tag (gtag.js) - Google Analytics