LINQ to Objects系列(2)两种查询语法介绍
LINQ为我们提供了两种查询语法,分别是查询表达式和查询方法语法。这篇文章分为以下几个方面进行总结。
1,一个包含两种查询语法的简单示例
2,查询表达式的结构
3,查询方法相关的运算符
一个包含两种查询语法的简单示例
一个LINQ查询既可以使用查询表达式实现,也可以用查询方法实现,还可以同时组合两种查询。下面是一个简单的示例,代码如下。
namespace LINQDemo3
{
class Program
{
static void Main(string[] args)
{
int[] numbers = { , , , , , , }; //查询表达式
var query = from number in numbers
where number <
select number; //查询方法(一般用lambda表达式)
var numsMethod = numbers.Where(p => p < ); //两种方式组合
var numsCount = (from number in numbers
where number <
select number).Count(); foreach (var item in query)
{
Console.WriteLine("{0}",item);
} foreach (var item in numsMethod)
{
Console.WriteLine("{0}",item);
} Console.WriteLine(numsCount);
Console.ReadKey();
}
}
}
查询表达式的结构
查询表达式通常以from开头,以select结束,这跟SQL语句的顺序不太一样,C#这么做的原因之一是让VS智能感应能在我们输入代码时给我们更多选项。一个查询表达式通常的结构如下图。

注:此图引用了‘滴答的雨’的http://www.cnblogs.com/heyuquan/p/Linq-to-Objects.html文章中的图片。
查询方法相关的运算符
查询方法主要分为过滤,排序,分组,统计,转换等几类操作,用一张图总结如下。

注:此图引用自‘滴答的雨’的文章,http://www.cnblogs.com/heyuquan/p/Linq-to-Objects.html
LINQ to Objects系列(2)两种查询语法介绍的更多相关文章
- easyui datagride 两种查询方式
easyui datagride 两种查询方式function doReseach() { //$('#tt').datagrid('load', { // FixedCompany: $('.c_s ...
- KbmMW两种查询结果集通讯方式
KbmMW本身可以用QueryService的方式进行远程数据查询,但是SmpileService同样具有很强的扩展性可以实现数据查询,下面展示两种基于SmpileService的远程数据查询方法,其 ...
- Jenkins持续集成企业实战系列之两种网站部署的流程-----01
注:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任. 最初接触Jenkins也是由于公司需求,根据公司需求Java代码项目升级的.(公司是 ...
- ZOJ-1610 线段树+两种查询方法(弥补我线段树区间填充的短板)
ZOJ-1610 线段树+两种查询方法(弥补我线段树区间填充的短板) 题意 题意:给一个n,代表n次操作,接下来每次操作表示把[l,r]区间的线段涂成k的颜色其中,l,r,k的范围都是0到8000 这 ...
- Solr系列二:solr-部署详解(solr两种部署模式介绍、独立服务器模式详解、SolrCloud分布式集群模式详解)
一.solr两种部署模式介绍 Standalone Server 独立服务器模式:适用于数据规模不大的场景 SolrCloud 分布式集群模式:适用于数据规模大,高可靠.高可用.高并发的场景 二.独 ...
- Spark on YARN两种运行模式介绍
本文出自:Spark on YARN两种运行模式介绍http://www.aboutyun.com/thread-12294-1-1.html(出处: about云开发) 问题导读 1.Spark ...
- LINQ to Objects系列(4)表达式树
为了进一步加深对Lambda表达式的理解,我们需要掌握一个新的知识,Lambda表达式树,可能听名字看起来很高深和难以理解,但实际上理解起来并没有想象中那么难,这篇文章我想分以下几点进行总结. 1,表 ...
- LINQ to Objects系列(1)相关技术准备
LINQ to Objects是LINQ的一部分,是查询对象集合的一种语法.首先看一下LINQ的体系结构,这样对LINQ有一个大致的了解.如图. 第一篇文章主要是回顾一下学习LINQ to Objec ...
- EF架构~linq模拟left join的两种写法,性能差之千里!
回到目录 对于SQL左外连接我想没什么可说的,left join将左表数据都获出来,右表数据如果在左表中不存在,结果为NULL,而对于LINQ来说,要实现left join的效果,也是可以的,在进行j ...
随机推荐
- AJPFX:什么是止盈?什么是止损?
在您进行外汇交易后,会碰到Take Profit(止盈)和 Stop Loss(止损)这两个词,均是用作控制风险的工具. 止盈(Take Profit):当单子达到预期的获利价格时锁定盈利.当订单在盈 ...
- 【文文殿下】[CEOI2004]锯木厂选址 题解
题解 我们枚举建厂的位置,发现有个\(n^2\)的DP.随手搞个斜率优化到\(O(n)\). #include<bits/stdc++.h> using namespace std; ty ...
- fatal: LF would be replaced by CRLF in index.html
进入项目目录,在.git文件夹下打开config配置文件,添加上下面两句话: autocrlf = false safecrlf = false 即可
- CentOS 7 下网络管理
如果最小化安装centos7 后会发现,安装完了进去配置网络发现,ifup ,ipconfig 这些命令不见了,那是因为 7 使用了新的网络管理工具NetworkManager ,具体的命令是nmc ...
- Task异步编程,刨根到底
1. 编译器到底对await做了什么 await 一个异步操作的时候,实际上编译器会创建一个状态机,这个状态机包含了调用者的上下文变量,状态机使用yield迭代器实现,状态机由clr调度,每次运行都会 ...
- flume常用组件
Flume组件 1. Source NetCat Source:绑定的端口(tcp.udp),将流经端口的每一个文本行数据作为Event输入: type:source的类型,必须是netcat. ...
- Docker概念学习系列之Docker与传统虚拟机差异(4)
不多说,直接上干货! 见[博主]撰写的https://mp.weixin.qq.com/s/YihjPONUcUi4b_7RC8oLYw 传统虚拟化是在硬件层面实现虚拟化,需要有额外的虚拟机管理应 ...
- Chapter 3 Phenomenon——19
His unfriendliness intimidated me. 他的不友好恐吓到了我. My words came out with less severity than I'd intende ...
- Hadoop2源码分析-MapReduce篇
1.概述 前面我们已经对Hadoop有了一个初步认识,接下来我们开始学习Hadoop的一些核心的功能,其中包含mapreduce,fs,hdfs,ipc,io,yarn,今天为大家分享的是mapred ...
- geo-经纬度计算
经纬度计算, 本质上是球面三角函数的应用, 将数学公式转换为代码的过程, 站在前人的肩膀上, 自己又补充了一点: package com.iwhere.easy.travel.tool; public ...