本文用一个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区别的更多相关文章

  1. 浅谈sql 、linq、lambda 查询语句的区别

    浅谈sql .linq.lambda 查询语句的区别 LINQ的书写格式如下: from 临时变量 in 集合对象或数据库对象 where 条件表达式 [order by条件] select 临时变量 ...

  2. 通过set赋值,与select赋值的区别

    ---通过set赋值,与select赋值的区别.declare @a int--set @a=(select count(*) from TblStudent)select @a=count(*) f ...

  3. select和epoll区别

    select.epoll 区别总结: 1.支持一个进程所能打开的最大连接数 select 单个进程所能打开的最大连接数有FD_SETSIZE宏定义,其大小是32个整数的大小(在32位的机器上,大小就是 ...

  4. SQL中SET和SELECT赋值的区别

    最近的项目写的SQL比较多,经常会用到对变量赋值,而我使用SET和SELECT都会达到效果. 那就有些迷惑,这两者有什么区别呢?什么时候哪该哪个呢? 经过网上的查询,及个人练习,总结两者有以下几点主要 ...

  5. sql 、linq、lambda 查询语句的区别

    LINQ的书写格式如下: from 临时变量 in 集合对象或数据库对象 where 条件表达式 [order by条件] select 临时变量中被查询的值 [group by 条件] Lambda ...

  6. [转载] Linux下多路复用IO接口 epoll select poll 的区别

    原地址:http://bbs.linuxpk.com/thread-43628-1-1.html 废话不多说,一下是本人学习nginx 的时候总结的一些资料,比较乱,但看完后细细揣摩一下应该就弄明白区 ...

  7. 我觉得epoll和select最大的区别

    最近在用epoll,网速资料很多,大家都说epoll和select的区别比较大,而且select要不停遍历所有的fd,效率要低,而且fd有限制. 但是我认为二者最大的区别在于 先看代码 while ( ...

  8. Ext4.2 select 和 query 区别与联系

    Ext.query和Ext.select的作用是一致的,同是根据CSS选择符查找出一个或多个元素.区别在于返回类型上.分别是:query方法返回的是JavaScript标准的数组类型:select方法 ...

  9. Ruby Proc 和 lambda的共同点和区别

    Proc 和 lambda 的目的是把block {....} 变成类似方法一样的对象,使其不需要重复编写同样的block. Proc 和 lambda 的共同点: 语法类似Proc.new{|n| ...

随机推荐

  1. 你的Node应用,对接分布式链路跟踪系统了吗?(一) 原创: 金炳 Node全栈进阶 4天前 戳蓝字「Node全栈进阶」关注我们哦

    你的Node应用,对接分布式链路跟踪系统了吗?(一) 原创: 金炳 Node全栈进阶 4天前 戳蓝字「Node全栈进阶」关注我们哦

  2. IO操作之BIO、NIO、AIO

    一.BIO Blocking IO: 同步阻塞的编程方式. BIO编程方式通常是在JDK1.4版本之前常用的编程方式.编程实现过程为:首先在服务端启动一个ServerSocket来监听网络请求,客户端 ...

  3. SQL-W3School-函数:SQL LEN() 函数

    ylbtech-SQL-W3School-函数:SQL LEN() 函数 1.返回顶部 1. LEN() 函数 LEN 函数返回文本字段中值的长度. SQL LEN() 语法 SELECT LEN(c ...

  4. Web安全测试检查点

    Web安全测试检查点 上传功能 1.绕过文件上传检查功能 2.上传文件大小和次数限制 注册功能 1.注册请求是否安全传输 2.注册时密码复杂度是否后台检验 3.激活链接测试 4.重复注册 5.批量注册 ...

  5. Java 处理json字符串value中多余的双引号

    转: Java 处理json字符串value中多余的双引号 一.错误场景 json字符串的value值中有多余的双引号 1.直接上错误的json字符串 1 String errorJsonStr =  ...

  6. Qt编写自定义控件47-面板区域控件

    一.前言 在很多web网页上,经常可以看到一个设备对应一个面板,或者某种同等类型的信息全部放在一个面板上,该面板还可以拖来拖去的,这个控件首次用在智能访客管理平台中,比如身份证信息一个面板,访客信息一 ...

  7. thinkphp3.2.2 没有定义数据库配置

    出现这个问题,温习下tp配置多个数据库 <?php return array( //默认数据库 'DB_TYPE' => 'mysql', // 数据库类型 'DB_HOST' => ...

  8. PostgreSQL创建database默认编码为UTF-8

    在psql中执行如下代码: create database logdb encoding='UTF8';

  9. jenkins:忘记密码怎么办

    方法一: 去掉密码登录配置 修改 JENKINS_HOME/users/user.conf user.conf 就是忘记密码对应的用户针对 yum install jenkins 安装的Jenkins ...

  10. RabbitMQ的安装(Windows环境下)

    在使用RabbitMQ之前,先知道什么是AMQP,AMQP 即 Advanced Message Queuing Protocol ,又叫高级消息队列协议,是应用层协议的一个开放标准,其主要特征是面向 ...