• 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:1userInfomation.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()});

  • 相关阅读:
    django路由层(一)
    计算机基础2
    Django模板语言
    Django框架介绍
    Python--格式化输出,运算符
    Python---基础
    Tensorflow--TensorflowBoard
    Tensorflow--图和会话
    Tensorflow--Tensor
    Tensorflow--基础结构
  • 原文地址:https://www.cnblogs.com/zhaow/p/9754621.html
Copyright © 2020-2023  润新知