C#—LINQ小结

LINQ代表语言集成查询(Language-Integrated Query),它包括用于从数据源检索信息的一组功能。数据检索是许多程序的重要组成功能。

简介:System.Linq;

var numPos=from n in x

where n(条件)

select 选择;

排序:使用orderby关键字排序 ascending(升序默认一般不加)desending(降序)

orderby+变量+关键字

如果有多个变量需要排序则 orderby +变量关键字+变量关键字按顺序来排。

select选择:

select能获取任何类型元素,可以选择部分也可以选择new对象。

from:可以多个来嵌套配合、select选择。

分组:group 需要分配元素 by 分组的依据 key。foreach 首先获得的是key,key中在包含元素。

into延续:在使用select或group子句时,有时我们会希望生成临时结果,随后查询这部分查询结果,而保存需要的结果。该操作称为延续。

例:

var webAdress =from addr in websites

where addr.LastIndexOf(“.”)!=-1

group addr by addr… into ws

where ws.count()>2

select ws;

let创建变量:可用let创建一个可枚举数据源。

例:

var chars=from str I strs

let h=str。。。

from hh in h。。。

join子句连接俩个序列:

from range-varA in data-sourceA

join range-varB in data-sourceB

on range-varA.property equals range-varB.property

select(俩个变量都可用)

匿名类型:没有名称的类,主要用途为创建select和join on选择的对象也是一个匿名类型。

查询方法:使用方法创建查询,用Lambda表达式。

例:

int []nums ={1,-2,3,0,-4,5};

var posNum =nums.Where(n => n>0).Select(r => r);

俩种方式最终会相同,因此自然会引发如下的问题:哪种方式合适最适于C#程序?答案如下:一般来说,您会希望使用查询语法。查询语法与C#语言完全集成,通过关键字和语法获得支持,并且更为清晰易懂。

原文地址:https://www.cnblogs.com/dlvguo/p/9736913.html