linq中的分组和排序

一、分组  group 组内成员 by 分组条件 into 组的信息

 class Program
    {
        static void Main(string[] args)
        {
            string[] name = { "张三","张六","刘大","刘晓","刘大脑袋","王大锤"};
            var result = from n in name
                         group n by n[0] into g
                         select g;
            foreach (var g in result)
            {
                Console.WriteLine(g.Key+""+g.Count()+"人");
                foreach (var item in g)
                {
                    Console.WriteLine(item);
                }
            }
        }
    }

二、order by 排序

 class Program
    {
        static void Main(string[] args)
        {
            //降序排序,默认是升序
            List<int> nums = new List<int> { 12,46,55,87,45,12,12,1,2,3};
            //方法1 linq语句+linq方法
            var result = from i in nums
                         orderby i descending
                         select i;
            foreach (var i in result)
            {
                Console.WriteLine(i);
            }
            //linq方法
            var num= nums.OrderByDescending(i => i);
            foreach (var i in num)
            {
                Console.WriteLine(i);
            }

        }
    }

时间: 2024-10-10 07:42:37

linq中的分组和排序的相关文章

linq 中的分组查询

直接看代码: //一个字段分组 var data1 = from a in query group a by a.Name into b select new { Total = b.Sum(c=>c.BrowseRealCount), Id = b.Select(c=>c.Id) }; //多个字段分组,可以使用匿名类方式 var data2 = from a in query group a by new { a.Name, a.Summary } into b select new {

linq中分组查询而且获取每个分组中的第一条记录,数据用于分页绑定

LINQ分组取出第一条数据 Person1: Id=1, Name="Test1" Person2: Id=1, Name="Test1" Person3: Id=2, Name="Test2" 以上list如果直接使用distinct方法进行过滤,仍然返回3条数据,而需要的结果是2条数据.下面给出解这个问题的方法: 方法1: Distinct 方法中使用的相等比较器.这个比较器需要重写Equals和GetHashCode方法,个人不推荐,感觉较

Linq 中按照多个值进行分组(GroupBy)

Linq 中按照多个值进行分组(GroupBy) .GroupBy(x => new { x.Age, x.Sex }) group emp by new { emp.Age, emp.Sex } into g // 实现多key分组的扩展函数版本 var sums = empList .GroupBy(x => new { x.Age, x.Sex }) .Select(group => new { Peo = group.Key, Count = group.Count() });

LINQ中的一些查询语句格式

LINQ的基本格式如下所示:var <变量> = from <项目> in <数据源> where <表达式> orderby <表达式> LINQ 基本子句from查询子句——基础后面跟随着项目名称和数据源示例代码如下:var str = from lq in str select lq; 其中select语句指定了返回到集合变量中的元素是来自哪个数据源的 from查询子句——嵌套查询可以在from子句中嵌套另一个from子句即可,示例代码如下

EF6与mvc5系列(3):在MVC应用程序中使用EF进行排序,过滤和分页

上节中,我们实现了基本增删查改功能,本节中要在Student的Index页面添加排序,分页和过滤功能,同时创建一个简单的分组页面. 在Student的Index页面添加列排序链接 为了在Index页面中实现排序.修改Index方法中的代码. 在Index方法中添加排序功能 修改Student控制器中的Index方法,在Index视图中添加代码. // GET: /Student/ public ActionResult Index(string sortOrder) { ViewBag.Name

Linq中demo,用力看看吧

本文导读:LINQ to SQL全称基于关系数据的.NET语言集成查询,用于以对象形式管理关系数据,并提供了丰富的查询功能.Linq中where查询与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子句. 一.LINQ的基本语法包含如下的8个上下文关键字,这些关键字和具体的说明如下: 关键字 说明 from 指定范围变量和数据源 where 根据bool表达式从数据源中筛选数据 select 指定查询结果中的元素所具有的类型或表现形式 group 对

Linq中GroupBy方法的使用总结(转)

Group在SQL经常使用,通常是对一个字段或者多个字段分组,求其总和,均值等. Linq中的Groupby方法也有这种功能.具体实现看代码: 假设有如下的一个数据集: public class StudentScore { public int ID { set; get; } public string Name { set; get; } public string Course { set; get; } public int Score { set; get; } public str

LINQ:开始使用 LINQ(五)- LINQ 中的查询语法和方法语法

开始使用 LINQ(五)- LINQ 中的查询语法和方法语法 在表示语言集成查询 (LINQ) 使用 LINQ 性查询语法,文档中的多数查询编写.但是,编译代码时,必须将查询语法转换为方法,这就需要 .NET 公共语言运行时 (CLR).这些方法调用标准查询运算符的名称类似 Where.Select.GroupBy.Join.Max和 Average.可以调用这些方法直接使用方法语法而不是查询语法. 查询语法和方法语法语义相同,但是,许多人员发现查询语法更简单.更易于阅读.某些查询必须表示为方法

05 LINQ中的聚合函数Part-2

LINQ中的聚合函数最常用的有Sum(),Average(),Max(),Min().顾名思义,这些聚合函数分别用于获取记录集中的“总和”.“平均数”.“最大值”.“最小值”.这些函数的使用也非常简单,下面举例介绍. 1) Sum() List<int> intInList = new List<int>() { 1, 3, 3, 2, 7, 8, 4, 5, 6, 3, 9 }; int sumOfList = intInList.Sum(); Console.WriteLine