代码之家  ›  专栏  ›  技术社区  ›  amazedsaint

你如何使用C#Lambda表达式?[关闭]

  •  6
  • amazedsaint  · 技术社区  · 17 年前

    把你的帖子倒进去。我先从几个开始,让我们看看能收集到多少。

    提供内联事件处理程序,如

    button.Click += (sender,args) =>
    {
    };
    

    在集合中查找项目

     var dogs= animals.Where(animal => animal.Type == "dog");
    

    对于迭代集合,例如

     animals.ForEach(animal=>Console.WriteLine(animal.Name));
    

    让他们来!!

    7 回复  |  直到 17 年前
        1
  •  3
  •   Andreas Grech    17 年前

    返回自定义对象:

    var dude = mySource.Select(x => new {Name = x.name, Surname = x.surname});
    
        2
  •  2
  •   Binoj Antony    17 年前

    单线功能

    Func<int, int> multiply = x => x * 2;
    int y = multiply(4);
    
        3
  •  2
  •   Marc Gravell    17 年前

    这里有一个稍微不同的——你可以使用它们 (like this) 模拟C#中缺少的“infoof”/“nameof”运算符,即,您可以使用lambda,而不是将属性名硬编码为字符串。这意味着它在编译时被验证(哪些字符串不能被验证)。

    这显然是有性能成本的,因此“只是为了好玩”,但很有趣。..

        4
  •  1
  •   Priyan R    16 年前

    使用方法调用者从多线程组件集事件更新UI

    void Task_Progress(object sender,TaskProgressArgs  e)
    {
        BeginInvoke(new MethodInvoker(() => UpdateProgress(e)));
    }
    
        5
  •  0
  •   TheSoftwareJedi jac    17 年前

    创建累加器。

        static Func<int, int> Foo(int n)
        {
            return a => n += a;
        }
    

    请注意此处的闭包用法。它创建了一个累加器,在调用之间“记住”n的值,而不需要类或实例变量。

        6
  •  0
  •   lomaxx    17 年前

    对于Linq的聚合操作:

    public Double GetLengthOfElements(string[] wordArr) {
    
       double count = wordArr.Sum(word => word.Length);
       return count;
    }
    

    当然比使用foreach要好

        7
  •  -1
  •   Daniel Earwicker    17 年前

    表示一个未命名的函数。

    推荐文章