lambda select和where区别
本文用一个linq to xml语法作为示例,以下是用来操作的xml:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!--This is a comment.Just input what you want to say.-->
<UsersInfomation>
<User ID="1">
<Name>Alex</Name>
<Hometown>HRB</Hometown>
<Age>22</Age>
</User>
<User ID="2">
<Name>Fu</Name>
<Hometown>SY</Hometown>
<Age>27</Age>
</User>
<User ID="3">
<Name>Abe</Name>
<Hometown>HRB</Hometown>
<Age>24</Age>
</User>
</UsersInfomation>
在一个输出台控制程序中加载xml,并调用方法:
XElement xd = XElement.Load(@"D:\1\userInfomation.xml");
GetHometown(xd);
Console.WriteLine();
//统计hometown为HRB的人数
private static void GetHometown(XElement xe)
{
//Select用于选择输出(不能作为筛选条件),比如:.Select(s=>s)将输出一个实体;.Select(s=>s.Value)将输出值;
//而下面的代码将输出的是bool类型:
var hometown = xe.Descendants("Hometown").Select(s => s.Value == "HRB");
//输出为:

//可以看出,输出的行数是全部行,只是输出的内容是bool,这是由Select子句决定的。
//Where扩展方法才是用来进行条件筛选(虽然它返回的也是bool值,但作用和Select不一样)
//等同于:var hometown = xe.Descendants("Hometown").Where(s => s.Value == "HRB").Select(s => s);
var hometown = xe.Descendants("Hometown").Where(s => s.Value == "HRB");
//输出为:

//可以看出,输出了符合条件的行。
//查询语法(等同于上一句)
//var hometown = from h in xe.Descendants("Hometown")
// where h.Value == "HRB"
// select h;
int count = 0;
foreach (var h in hometown)
{
Console.WriteLine(h);
count++;
}
Console.WriteLine("==============>"+count);
}
------------------------------ Select用法续 《Pro ASP.NET MVC 3 Framework》p529---------------------
作用:
1、用来过滤要显示的字段
2、定义字段要显示的样式
如:
var formattedData=data.Select(m=>new { ClientName=m.ClientName,Date=m.Date.ToShortDateString()});
lambda select和where区别的更多相关文章
- 浅谈sql 、linq、lambda 查询语句的区别
浅谈sql .linq.lambda 查询语句的区别 LINQ的书写格式如下: from 临时变量 in 集合对象或数据库对象 where 条件表达式 [order by条件] select 临时变量 ...
- 通过set赋值,与select赋值的区别
---通过set赋值,与select赋值的区别.declare @a int--set @a=(select count(*) from TblStudent)select @a=count(*) f ...
- select和epoll区别
select.epoll 区别总结: 1.支持一个进程所能打开的最大连接数 select 单个进程所能打开的最大连接数有FD_SETSIZE宏定义,其大小是32个整数的大小(在32位的机器上,大小就是 ...
- SQL中SET和SELECT赋值的区别
最近的项目写的SQL比较多,经常会用到对变量赋值,而我使用SET和SELECT都会达到效果. 那就有些迷惑,这两者有什么区别呢?什么时候哪该哪个呢? 经过网上的查询,及个人练习,总结两者有以下几点主要 ...
- sql 、linq、lambda 查询语句的区别
LINQ的书写格式如下: from 临时变量 in 集合对象或数据库对象 where 条件表达式 [order by条件] select 临时变量中被查询的值 [group by 条件] Lambda ...
- [转载] Linux下多路复用IO接口 epoll select poll 的区别
原地址:http://bbs.linuxpk.com/thread-43628-1-1.html 废话不多说,一下是本人学习nginx 的时候总结的一些资料,比较乱,但看完后细细揣摩一下应该就弄明白区 ...
- 我觉得epoll和select最大的区别
最近在用epoll,网速资料很多,大家都说epoll和select的区别比较大,而且select要不停遍历所有的fd,效率要低,而且fd有限制. 但是我认为二者最大的区别在于 先看代码 while ( ...
- Ext4.2 select 和 query 区别与联系
Ext.query和Ext.select的作用是一致的,同是根据CSS选择符查找出一个或多个元素.区别在于返回类型上.分别是:query方法返回的是JavaScript标准的数组类型:select方法 ...
- Ruby Proc 和 lambda的共同点和区别
Proc 和 lambda 的目的是把block {....} 变成类似方法一样的对象,使其不需要重复编写同样的block. Proc 和 lambda 的共同点: 语法类似Proc.new{|n| ...
随机推荐
- Angular 中的生命周期函数
一. Angular中的生命周期函数 官方文档:https://www.angular.cn/guide/lifecycle-hooks 生命周期函数通俗的讲就是组件创建.组件更新.组件销毁的时候会触 ...
- angular组件数据和事件
<h1>引入图片</h1> <img src="assets/images/02.png" alt="收藏" /> < ...
- 自定义控件之Region区域
构造Region 直接构造 public Region(Region region) //复制一个同样的Region变量 public Region(Rect r) public Region(int ...
- Jmeter BeanShell 引用变量报错Error or number too big for integer
如果你通过CSV Data Set Config或者_StringFromFile函数来参数化你的请求,需要特别注意当参数为纯数字时,jmeter会默认将其识别成int型数据,说明jmeter并不是默 ...
- osg 在fbx模型中添加自定义节点
- (二)Centos之在VM虚拟机中安装Centos操作系统
一.下载 阿里云镜像 https://mirrors.aliyun.com/centos/7/isos/x86_64/ 下载那个 DVD版本即可. 二.安装 在安装操作系统之前 我们来给这个“机器”搞 ...
- EasyNetQ使用(七)【发布者确认 ,用Future Publish发布预定中事件 】
AMQP发布消息默认情况下是非事务性的,不能确保你的消息真正送达代理.AMQP可以去指定事务性发布,但是RabbitMQ这样会非常慢,我们没有让EasyNetQ API去支持此功能.为了高效的确保投递 ...
- eclipse设置html js css自动提示
eclipse也可以像Visual Studio 2008那样完全智能提示HTML/JS/CSS代码,使用eclipse自带的插件,无需另外安装插件,具体步骤如下 1.打开eclipse→Window ...
- python set集合(16)
在python变量中除了以前文章所提到的整形int / 浮点数float / 布尔值bool / 列表list / 字典dict 之外,还有一个类型我们还没有做详细介绍,这个变量类型就是集合set. ...
- 20175316盛茂淞 2018-2019-2 《Java程序设计》第10周学习总结
教材知识总结 第12章 Java多线程机制 进程与线程 进程是程序的一次动态执行进程,它对应了从代码加载.执行至执行完毕的一个完整过程 线程不是进程,一个进程在其执行过程中,会产生多个线程,线程间可以 ...