zoukankan      html  css  js  c++  java
  • Lambda语句的嵌套

    // 获取所有长度最短的名字(注意:可能有多个)

    string[] names = { "Tom", "Dick", "Harry", "Mary", "Jay" };
    IEnumerable<string> outQuery = names
    .Where(
        n => n.Length == names.OrderBy(n2 => n2.Length).Select(n2 => n2.Length).First()
                );

    //注意,上面的==两端分别是两个长度int类型表达式,右端的orderby子句输出仍是names原型,只不过顺序变为升序了;再select是在此升序结果上取所有names成员的长度,这里转换了序列的类型由string变成了int,最后first取出最小的一个长度。

    如果用Min方法,上面可简写为:

     IEnumerable<string> outQuery = names
        .Where(
                    n => n.Length == names.Min(n2=>n2.Length)  

    //注意:Min不同于Math中的Min函数,它也只能用lambda表达式做参数,且n2不能与重复用n,因为它们在同一级别相同。甚至在Min的表达式中还可用到n,如names.Min(n2=>n2.Length+n.Length),在这里只看语法,没有具有意义
                    );

  • 相关阅读:
    Linux 内核 MCA 总线
    Linux 内核PC/104 和 PC/104+
    Linux 内核即插即用规范
    Linux 内核硬件资源
    Linux 内核 回顾: ISA
    Linux 内核硬件抽象
    Linux 内核硬件抽象
    Linux 内核PCI 中断
    Linux 内核存取 I/O 和内存空间
    哥们的面试经历
  • 原文地址:https://www.cnblogs.com/mol1995/p/7500569.html
Copyright © 2011-2022 走看看