zoukankan      html  css  js  c++  java
  • C#中的Where和Lambda表达式

    List<string> listString = new List<string>();
    listString.Add("abc");
    listString.Add("456");
    listString.Add("bbb");
    listString.Add("iiiiiiii");
    
    var retList = listString.Where(u => u.Length > 4);
    foreach (string str in retList)
    {
        Console.WriteLine("str = {0}", str);
    }
    

    之前当看到c#里有Where的时候,总是不明觉厉,也影响了阅读代码的流畅性。

    这里的Where是Linq的一种查询语法,而u => u.Length > 4则是一个lambda正则表达式。

    Where语法格式:

    public static IEnumerable<TSource> Where<TSource>(
    	this IEnumerable<TSource> source,
    	Func<TSource, bool> predicate
    )

    lambda正则表达式:

    表达式位于=>运算符的右侧  (input parameters)=>expression。实际上是一个匿名委托。比如:

    delegate int add(int i);
    static void Main(string[] args)
    {
        add myDelegate = x => x + 5;
        int ret = myDelegate(5);
        Console.WriteLine("ret = {0}", ret);
                
        Console.ReadLine();
    }
    

     文章开头代码中listString.Where(u => u.Length > 4);里面的u => u.Length > 4实际上就是一个匿名委托,用这个匿名委托去过滤Source里面的每一个元素,剩下的返回IEnumerable<TSource>。

  • 相关阅读:
    图解 SQL 各种连接查询之间的区别
    虚拟机Ubuntu无法上网问题解决过程
    SQL语言(二) java怎样连接操作数据库中的数据
    SQL语言(一)
    编写简单的用户登录界面
    Java
    java第一阶段测试
    Net Core linux docker 部署异常
    .Net Core Cap 异常
    记.Net 创建文件
  • 原文地址:https://www.cnblogs.com/chunyih/p/3859453.html
Copyright © 2011-2022 走看看