Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
你用什么方式使用C#Lambda表达式?_C#_.net_C# 3.0_Lambda - Fatal编程技术网

你用什么方式使用C#Lambda表达式?

你用什么方式使用C#Lambda表达式?,c#,.net,c#-3.0,lambda,C#,.net,C# 3.0,Lambda,把你的帖子倒进去。我先从几个开始,让我们看看能收集到多少 提供内联事件处理程序,如 button.Click += (sender,args) => { }; 在集合中查找项目的步骤 var dogs= animals.Where(animal => animal.Type == "dog"); 用于迭代集合,如 animals.ForEach(animal=>Console.WriteLine(animal.Name)); 让他们来吧 返回自定义对象: var du

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

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

button.Click += (sender,args) =>
{
};
在集合中查找项目的步骤

 var dogs= animals.Where(animal => animal.Type == "dog");
用于迭代集合,如

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

让他们来吧

返回自定义对象:

var dude = mySource.Select(x => new {Name = x.name, Surname = x.surname});

创建累加器

    static Func<int, int> Foo(int n)
    {
        return a => n += a;
    }
静态函数Foo(int n)
{
返回a=>n+=a;
}

注意这里的闭包用法。它正在创建一个累加器,在调用之间“记住”n的值,而不使用类或实例变量。

来表示一个未命名的函数。

一行函数

Func<int, int> multiply = x => x * 2;
int y = multiply(4);
Func multiply=x=>x*2;
int y=乘法(4);

这里有一个稍有不同的方法-您可以使用它们来模拟C#中缺少的“infoof”/“nameof”操作符-即,这样您就可以使用lambda而不是将属性名称硬编码为字符串。这意味着它是在编译时验证的(这是字符串无法验证的)


这显然会带来性能成本,因此“只是为了好玩”,但对于使用Linq的聚合操作来说,有趣的是…

public Double GetLengthOfElements(string[] wordArr) {

   double count = wordArr.Sum(word => word.Length);
   return count;
}

肯定比使用foreach和方法调用程序从多线程组件网事件更新UI要好

void Task_Progress(object sender,TaskProgressArgs  e)
{
    BeginInvoke(new MethodInvoker(() => UpdateProgress(e)));
}

你知道吗,你可以直接做新的{x.name,x.names}?属性将是小写的,如本例所示。难道没有足够的无意义的“问题”吗?问问人们是如何使用“如果”语句的?还是上课?也许是int?LAMBDAS只是语言中的一个新的功能,与语言的其他特征相称。我们总是需要这些问题吗?Jalf,我自己通过代码编写,发现我正在以各种有趣的方式使用Lambda-与Ifs和whiles相比,Lambda是一个更强大的功能。因此,我认为这篇文章将帮助我自己和其他人了解更多用法。@DaveZych-好吧,也许我会这么做,四年后。你可以删除答案。。。我也是靠工具来的…@DaveZych。不幸的是,这确实回答了这个问题。这就是为什么我将问题标记为删除。。。