LINQ学习笔记(二)

   上一篇是根据百度百科写的随便,同时也纠正我对LINQ的看法,因为首次接触LINQ是使用EF对数据库数据的操作。

所以误以为它操作数据库的一种新手段。

   LINQ语言集成查询是一组技术的名称,这些技术建立在查询功能直接集成在带C#语言的基础上。

借助LINQ,查询现在已经是高级语言构造,就如同类、方法、事件等等。

LINQ的数据源包括SQL数据库,ADO.NET数据集,XML文档和流,以及.NET集合中数据。

下面是以简单的例子入门

// 指定数据源
int[] scores = new int[] { 97, 92, 81, 60 };

// 定义查询表达式
IEnumerable<int> scoreQuery =
from score in scores
where score > 80
select score;

// 执行查询
foreach (int i in scoreQuery)
{
Console.Write(i + " ");
}

输出结果是:97 92 81

其中scoreQuery被成为"查询变量",简称"查询"。

查询变量本身并不存储实际的结果数据,而是当foreach语句执行时通过变量i返回的。

LINQ查询的数据只有在用到的时候才会真正的去查询,因为就是说如何不执行foreach类似的

查找数据的语句,是不会有数据的出现的。

其中score是范围变量。范围变量的类型是有数据源中元素的类型确定的,上述score是int类型。

 

查询表达式必须以from子句开头,同时指定数据源和范围变量,并且以select或group子句结尾。

在对源序列节能型遍历的过程中,范围变量表示源序列中的每个后续元素。

在第一个子句from和最后一个select胡或group子句之间,表达式必须包含

一个或多个下列可选子句:where、orderby、join、let甚至附加的from子句。

还可以是使用into关键字使join或group子句的结果充当同一下查询表达式中附加

查询子句的源。

 

LINQ的查询语法在上一篇中并未做解释

所以在这一篇加以解释

LINQ是存在两种语法。

1.Query syntax 查询语法 ,就是通过写查询表达式的方式实现

例如:

IEnumerable<City> queryMajorCities =
from city in cities
where city.Population > 100000
select city;

上述的代码就是以查询语句的方法实现的,但此时并不存在真正的数据。

2.Method-based syntax 基于方法的语法,就是通过方法的形式实现查询

例如:

IEnumerable<City> queryMajorCities2 = cities.Where(c => c.Population > 100000);

其中cites是数据源,通过在数据源的方法实现查询。

 

以上的查询变量都是显示指定了类型,但它因为是支持类型推断来隐式类型化的。

使用var关键字指示编译器在编译时推断查询变量的类型。

例如:

var queryCities =
from city in cities
where city.Population > 100000
select city;

 

转载于:https://www.cnblogs.com/xiaoai123/p/6684566.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值