-
2021-12-03 16:20:34
查询数组中所有偶数,按大小排序
int []nums = { 1, 8, 4, 7, 3, 2, }; /* var Q1 = from num in nums where num % 2 == 0 orderby num select num; */ var Q2 = nums.Where(n => n % 2 == 0).OrderBy(n=>n); //Lamda表达式 foreach (var item in qq) { Console.WriteLine(item + ""); } Console.ReadKey();
1、OrderBy()
作用:实现主要字段升序排序。
2、OrderByDescending()
作用:实现主要字段降序排序。
List<Level> levels = new FilteredElementCollector(doc). OfClass(typeof(Level)).OfType<Level>(). OrderByDescending(lev =>lev.Elevation).ToList();
3、ThenBy()
作用:实现次要字段升序排序。
示例:
用户列表根据昵称为主要字段进行升序排序,注册时间为次要字段进行升序排序。
userList=userList.OrderBy<User>(x=>x.pickname).ThenBy<User> (x=>x.registerTime).ToList();
4、ThenByDescending()
作用:实现次要字段降序排序。示例:
用户列表根据昵称为主要字段进行升序排序,注册时间为次要字段进行降序排序。
userList=userList.OrderBy<User>(x=>x.pickname) .ThenByDescending<User>(x=>x.registerTime).ToList();
注:只能在OrderBy()或OrderByDescending()后面使用ThenByDescending()
更多相关内容 -
Linq语句
2020-06-18 11:25:131.LINQ LINQ(Language Integrated Query) 定义:语言集成查询是一组用于c#和Visual Basic语言的扩展。它允许编写C#或者Visual Basic代码以操作内存数据的方式,查询数据库。 通过使用查询语法,您甚至可以使用最少...1.LINQ
LINQ(Language Integrated Query)
定义:语言集成查询是一组用于c#和Visual Basic语言的扩展。它允许编写C#或者Visual Basic代码以操作内存数据的方式,查询数据库。
通过使用查询语法,您甚至可以使用最少的代码对数据源执行复杂的筛选、排序和分组操作。 您使用相同的基本查询表达式模式来查询和转换 SQL 数据库、ADO.NET 数据集、XML 文档和流以及 .NET 集合中的数据。2.Lambda表达式
定义:Lambda 表达式是一种可用于创建委托或表达式目录树类型的匿名函数3.常用查询指令
①.基本查询var query = from r in listStudents where r.score < 60 orderby r.score descending select r; //var q2 = listStudents.Where(r => r.score < 60).OrderByDescending(r => r.score).Select(r => r) ;//或使用Lambda表达式
1 2
②.延迟查询属性
linq查询为延迟查询,只需构造一次查询语句,可以多次使用```csharp /// <summary> /// Linq /// 延迟查询 /// linq查询为延迟查询,只需构造一次查询语句,可以多次使用 /// </summary> static void Linq2() { #region 构造查询数据 List<string> lists = new List<string> { "Jack","Pet","Hant","Li","Kkk"}; #endregion var query = from r in lists where r.StartsWith("J") select r; Console.WriteLine("第一次查询结果:"); foreach (string st in query) { Console.WriteLine( st); } Console.WriteLine("第二次查询结果:"); lists.Add("Jone"); lists.Add("Jimi"); lists.Add("Johu"); foreach (string st in query) { Console.WriteLine(st); } Console.ReadKey(); /* 输出结果: * 第一次:Jack * 第二次:Jack Jone Jimi Johu */ }
③.类型筛选 利用OfType方法可以把特定类型数据筛选出来。 ```csharp <summary> /// Linq类型筛选-ofType /// </summary> static void Linq3() { object[] pList = new object[] { 1,"one",2,"two",3,"three"}; var query = pList.OfType<string>(); foreach (var st in query) { Console.WriteLine(st); } Console.ReadKey(); /* 输出结果: * one two three */ }
④.复合from子句
var query = from s in listStudents from n in s.name where n == '赵' orderby s.score descending select s.grade + "班-" + s.name + ",分数" + +s.score; /*查询出所有姓赵的学生的班级、姓名、分数信息,并按分数由高到低排序*/
⑤.多级排序
//参数越靠前,优先级越高
//先按score排序,当分数相同时再按grade排序…依次类推var query = from s in listStudents orderby s.score, s.grade, s.age, s.name select s;
⑥.分组
//按国家分组,并选出大于2的组,形成新的集合
var query = from r in listChampion group r by r.country into g orderby g.Count() descending, g.Key where g.Count() >= 2 select new { country = g.Key, count = g.Count() }; 1 2 3 4 5 6 7
⑦.联合查询-join
//查询出集合qSt中year等于集合qSc中year的元素并形成新的集合
var qjoin = from r in qSt join c in qSc on r.year equals c.year select new { Year = r.year, stName = r.name, scName = c.name }; ⑧.合并-zip() /*若合并两项项数不同,则在达到较小集合的末尾时停止*/ var qZip = qSc.Zip(qSt, (first, second) =>string.Format("Year:{0},Name:{1}.", first.Year,second.Name));//返回值qZip为字符串集合 1 2 ⑨.分区(分页) 通过Take()和Skip()实现只显示部分查询结果。 ```csharp //通过skip跳过指定数量的元素,再通过take提取固定长度元素,可实现分页 var qr = (from r in listStudents orderby r.score descending select r).Skip(i * pageSize).Take(5); //var qr2 = listStudents.OrderByDescending(r => r.score).Select(r => r).Skip(i * pageSize).Take(5);//或
⑨.并行linq
并行查询可以分解查询的工作,使其分布在多个线程上。当pc拥有多个cpu时,可以看到并行查询带来的改进效果。并行LINQ适用于大型的集合查询,并拥有一定的优势。使用System.Collections.Concurrent.Partitioner.Create可以手动创建分区器。var sum2 = (from x2 in data.AsParallel() where x2 > 20 select x2).Sum();//并行查询 //var sum3 = data.AsParallel().Where(x3 => x3 > 20).Sum();//或并行查询(Lambda表达式)
⑩.取消长时间运行的并行linq查询
对于并行ling而言,可以设置可以利用System.Threading.CancellationTokenSource设置取消操作。//通过.WithCancellation(cts.Token)设置 var sum = (from x in data.AsParallel().WithCancellation(cts.Token) where x < 20 select x).Average();
⑪.复杂左关联
var data = from c in db.T_COURSE join u in db.T_USER_COURSE_RECORD.Where(x=>x.USER_ID ==userId) on c.COURSE_ID equals u.COURSE_ID into x from cx in x.DefaultIfEmpty() select new { c.COURSE_NAME, COURSE_ID=cx, USER_COURSE_ID=cx==null?0:cx.USER_COURSE_ID, USER_ID= cx, SCORE =( cx==null|cx.SCORE == -1) ? "未完成" : cx.SCORE.ToString() };
-
linq语句用法文档
2018-05-24 11:21:43该文档介绍了在前端js中对数据的处理,包括筛选、排序、分组等一系列操作,类似于sql语句 -
将sql语句转换成为linq语句
2013-07-23 15:01:14一个比较有点特殊的转换,供大家参考一下,希望能够帮助想我一样对linq语句不太熟悉的伙伴! -
LINQ语句查询
2021-06-20 15:40:04Linq语句查询,目前的学习进度来说也就是我们的单表和多表查询 它为匿名类型查询提供了一种很方便的方法,可用来将一组只读属性封装到单个对象中,而且还不需要先定义一个显示类型,因为它的类型名字直接由编译器...连接数据库
Linq语句查询,目前的学习进度来说也就是我们的单表和多表查询
它为匿名类型查询提供了一种很方便的方法,可用来将一组只读属性封装到单个对象中,而且还不需要先定义一个显示类型,因为它的类型名字直接由编译器生成,而且每一个属性的类型都是由编译器推断
我们先试一下如何用linq语句查询
Var匿名类型的关键字,是定义数据类型的间接方式
首先我们用中文来理解一下怎么去查询
比如你要查询某个学院有什么专业
Var??(??代表一个量)=from?? InmyModel专业(在数据库里查找表)
Select new(挑选你所需要的数据)
{
Id=??。它的id
Text=??。它的名字
}
看完这个之后我们用一个简单例子来总结一下
根据学院ID查询年级信息
Public ActionResult SelectGradeByAcademeID(intAcademeID)【在学院ID里面找年里的信息】{
var listGrade=(from tbGrade in myMdel。SYS_Grade
join tbAcademe in myModel.SYS_Academe on tbGrade.AcademeID equals tbAcademe.AcademeID
where tbGrade.AcademeID==AcademeID
select new
{
Id = tbGrade.GradeID,
text=tbGrade.GradeName
}).ToList();
Return Json(listGrade,JsonRequestBehavior.AllowGet);
}
看完这串代码,我们可以吧上面的理解套入进去理解一下,
我们来一句一句的分析它:
Var listGrade=(from tbGrade in myModel.SYS_Grade
(from tbGrade in myModel.SYS_Grade赋值给listGrade
Join tbAcademe in myModel.SYS_Academe
Join(重新命名).tbAcademe in myModel.SYS_Academe学院数据里的数据
On tbGrade.AcademeID equals tbAcademe.AcademeID
根据ntbGrade.AcademeID equals(连接) tbAcademe.AcademeID
Where tbGrade.AcademeID==AcademeID
在tbGrade.AcademeID里==AcademeID它的时候
我们就在这个表里面去挑选我们所需要的东西
Select new{
Id=tbGrade.GradeID,
Text=tbGrade,GradeName
}).ToList();
Id=tbGrade.GradeID,年级的id
Text=tbGrade.GradeName年级的名字
Return Json(listGrade,JsonRequestBehavior.AllowGet);
这是使用的linq语句查询后的效果图
)
-
【LINQ语句】LINQ语句
2017-12-30 17:21:56LINQ(Language Integrated Query)是C#和VB.NET中的统一查询语法,用于保存和检索不同来源的数据。它集成在C#或VB中,从而消除了编程语言和数据库之间的不匹配,以及为不同类型的数据源提供单个查询接口。例如,...前言
LINQ(Language Integrated Query)语言集成查询是一组用于c#和Visual Basic语言的扩展。它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据。
叙述
What is LINQ?
LINQ(Language Integrated Query)是C#和VB.NET中的统一查询语法,用于保存和检索不同来源的数据。它集成在C#或VB中,从而消除了编程语言和数据库之间的不匹配,以及为不同类型的数据源提供单个查询接口。
例如,SQL是一种结构化查询语言,用于保存和检索数据库中的数据。同样的,LINQ是一个用C#和VB.NET构建的结构化查询语法,用于保存和检索来自不同类型数据源的数据,如对象集合,SQL服务器数据库,XML,Web服务等。
LINQ总是与对象一起工作,因此您可以使用相同的基本编码模式来查询和转换XML文档,SQL数据库,ADO.NET数据集,.NET集合以及LINQ提供程序可用的任何其他格式的数据。Why LINQ?
(1)熟悉的语言:开发人员不必为每种类型的数据源或数据格式学习新的查询语言。
(2)较少的编码:与传统方法相比,它减少了要编写的代码量。
(3)可读代码: LINQ使代码更易读,所以其他开发人员可以轻松理解和维护代码。
(4)查询多个数据源的标准化方式:可以使用相同的LINQ语法来查询多个数据源。
(5)编译查询的时间安全性:在编译时提供对象的类型检查。
(6)智能感知支持: LINQ为通用集合提供智能感知。
(7)整形数据:您可以检索不同形状的数据。LINQ查询语法
有两种基本的方法来编写一个LINQ查询IEnumerable集合或IQueryable数据源。
1、查询语法或查询表达式语法
2、方法语法或方法扩展语法或FluentLINQ查询语法
查询语法与数据库的SQL(结构化查询语言)类似。它是在C#或VB代码中定义的。
具体的语法:
(1)从<范围变量>在<IEnumerable <T>或IQueryable <T>集合>
(2)<标准查询运算符> <lambda表达式>
(3)<select或groupBy运算符> <结果形成>LINQ查询语法从关键字开始,以select关键字结束。以下是LINQ查询示例,它返回包含单词“Tutorials”的字符串集合。
// string collection IList<string> stringList = new List<string>() { "C# Tutorials", "VB.NET Tutorials", "Learn C++", "MVC Tutorials" , "Java" }; // LINQ Query Syntax var result = from s in stringList where s.Contains("Tutorials") select s;
查询语法从一个From子句开始,然后是一个Range变量。在从子句结构类似,意味着从集合中的每个对象。它类似于一个foreach循环:"From rangeVariableName in IEnumerablecollection"foreach(Student s in studentList)
在From子句之后,可以使用不同的标准查询运算符来过滤,分组和集合的元素。在LINQ中有大约50个标准查询操作符可用。在上图中,我们使用了“where”运算符(aka子句)后跟一个条件。这个条件通常用lambda表达式表示。
LINQ查询语法总是以Select或Group子句结束。Select子句用于形成数据。您可以按原样选择整个对象,也可以仅选择其中的一些属性。在上面的例子中,我们选择了每个结果字符串元素。LINQ方法语法
方法语法(也称为流利语法)使用Enumerable或Queryable静态类中包含的扩展方法,类似于您将如何调用任何类的扩展方法。
// string collection IList<string> stringList = new List<string>() { "C# Tutorials", "VB.NET Tutorials", "Learn C++", "MVC Tutorials" , "Java" }; // LINQ Query Syntax var result = stringList.Where(s => s.Contains("Tutorials"));
如上图所示,方法语法由扩展方法和Lambda表达式组成。扩展方法Where()在Enumerable类中定义。小结
LINQ语句通常和EF框架一起结合使用,本文只是简单的介绍了一下linq to sql的一些语法,还有linq to xml,linq to object,linq to database等一些知识,需要读者自行去了解。加油吧。 -
LiNQ语句精典实例
2013-04-23 11:23:03提供很实用的LINQ语句例子!对LinQ开发很有帮助! -
普通sql语句和Linq语句简单查询的写法
2020-10-24 07:18:11普通sql语句写法 SELECT c FROM db.Custommer WHERE c.CNO >...普通Linq语句写法 from c in db.Custommer where c.CNO > 10 select c; Lambda表达式写法 db.Customer.Where(u => u.CNO > 10); -
Linq语句集成查询
2021-06-17 16:58:21Linq to SQL 全称基于关系数据的.NET 语言集成查询,用于以对象形式管理关系数据,我们常用Linq语句去查询SQL内的数据,可以使用多个查询表达式达到多重筛选数据的效果。 1.首先,Linq语句中包含以下的8个关键字 (1... -
C#使用linq语句查询数组中以特定字符开头元素的方法
2021-01-20 05:45:43本文实例讲述了C#使用linq语句查询数组中以特定字符开头元素的方法。分享给大家供大家参考。具体如下: 下面的代码查询数组中以字母k开头的元素 using System; using System.Collections.Generic; using System.... -
C#基本linq语句使用
2019-12-05 18:11:07功能:学习基本linq语句 直接复制到代码文件里即可食用 每次请只执行start里一个方法,其他注释掉 推荐把方法折叠起来看 只有前8个。 *****************************************************/ us... -
关于LINQ语句的使用知识
2020-08-18 15:12:18所谓的linq 语句,就是基于关系数据的NET语言集成查询,用于以对象形式管理关系,并提供了丰富的查询功能。Linq中where查询与SQL命令中的where作用相似,都是起到范围限定也就是过滤作用,而判断条件就是它后面所接的... -
Linq语句的左、右、内连接
2019-06-27 11:02:00目前在进行项目中,数据的多表查询出现了一些问题,在查询数据时,如果该数据表中的外键不存在数据时,则该数据在页面中无法查询和显示. 例如:客户,客户可以关联...因为用的是Linq查询语句,经过思考后感觉可以用... -
C#之Linq语句
2019-10-20 15:37:48Linq是一种查询语句,C#中可以用这种语句做集合和数据库查询。 新建一个Student类: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; ... -
Linq语句返回值的坑
2020-12-24 11:42:31先上一个例子 class Program { ... 在 LINQ 中,查询变量本身不执行任何操作并且不返回任何数据,只有linq语句执行的时候,才会运行调用linq语句中的代码。这点在做查询的时候一点得注意,特别是对数据库操作的时候。 -
Linq语句的基本查询
2020-08-20 15:35:54一、LINQ的基本语法包含如下的8个上下文关键字,这些关键字和具体的说明如下图: 关键字 说明 关键字 说明 from 指定范围变量和数据源 where 根据bool表达式从数据源中筛选数据 select 指定查询结果中的... -
C#中的LInq语句
2019-07-27 10:00:14语言集成查询 (LINQ) 是一组技术的名称,这些技术建立在将查询功能直接集成到 C# 语言(以及 Visual Basic 和可能的任何其他 .NET 语言)的基础上。借助于 LINQ,查询现在已是高级语言构造,就如同类、方法、事件... -
关于Linq语句
2022-04-19 10:57:34Linq语句是一组方法,允许以最少的代码对集合执行筛选、排序和分组操作。Linq代表语言集成查询。它是一组基于将查询功能集成到C#语言中的技术的名称。虽然Linq方法不是语言集成的,但是还有一个声明性的、语言集成的... -
LINQ语句详解
2013-09-16 22:13:10linq语句详解,学习linq语句不得多得的文档 -
Mvc+EF+layui开发使用linq语句之查询一
2021-01-08 10:01:57在项目开发过程中可能会与第三方框架相集合,比如lauiy,vue,bootstrap等,我这里呢就使用了layui和EF结合开发的一个下项目 这里能可以直接去官网下载:传送门下载完成之后呢 第一步,创建数据库和添加视图类这儿呢 ... -
复杂Linq语句写法
2018-07-24 10:01:15从网上收藏的复杂Linq语句写法 1、case when: 原型: sql原型: SELECT ProductID, Name, Color, CASE WHEN Color = 'Red' THEN StandardCost WHEN Color = 'Black' THEN StandardCost + 10 ... -
linq语句转SQL语句
2019-10-09 07:33:27这段时间LINQ 和SQL写少了!还是自己变老了?越来越不会变通了 问题: =============================================== var ret = from x in ls where ( string.IsNullOrEmpty(arg.QueryText) ? true : ( (x.a?? ... -
C#的linq语句
2019-01-15 17:32:53/查询表达式必须以form子句开头,以select或者group子句结束,在这两个子句之间,可以使用 ///where 、orderby、join、let和其他的... LINQ查询操作符 平行LNQ 表达式树 本章源代码下载地址( wrox. com ) ... -
Linq语句查询
2019-04-15 17:37:45Linq语句查询在MVC里操作Linq语句,一般来说有两种方式,一种是Lambda表达式+扩展方法,还有另一种就是表达式,然而这个表达式的方式跟sql数据库的方式是差不多的,他们两个的区别就是在于我们是按照sql数据库执行... -
LINQ语句[文].pdf
2021-10-11 04:02:02LINQ语句[文].pdf -
linq语句.txt
2020-06-13 17:39:26linq语句. -
C# LINQ语句
2018-08-21 10:39:001、select 和 selectMany SelectMany()将中间数组序列串联为一个最终...2、join语句 from x in xx join d in dd on x.y equals d.y select 3、级联concat 4、相等 SequenceEqual 转载于:https://w... -
使用EF配合Linq语句进行查询
2018-09-22 21:57:45这个生成的SQL语句是根据,刚才写的Linq语句生成的,如果你写的Linq语句没有不支持的语句或者函数,他就会把他转换成SQL语句进行查询,可以有效的提高查询效率,如果里面用到了你自定义或者不支持的函数,他就会把... -
使用Linq语句进行多表查询总结
2019-04-07 13:29:31使用Linq语句进行多表查询总结 在MVC做项目中有时要通过数据库一同查询多个表中的数据就是多表查询数据了 在建立连接多表时我们首先要清楚我们要用到的那几个表,找出表中的主键ID和他们的外键分清他们的主次关系 主...