相关疑难解决方法(0)

C#Lambda表达式:我为什么要使用它们?

我已经快速阅读了Microsoft Lambda Expression文档.

这种例子帮助我更好地理解了:

delegate int del(int i);
del myDelegate = x => x * x;
int j = myDelegate(5); //j = 25
Run Code Online (Sandbox Code Playgroud)

不过,我不明白为什么会有这样的创新.它只是一种在"方法变量"结束时死亡的方法,对吗?为什么我应该使用它而不是真正的方法?

c# lambda c#-3.0

302
推荐指数
10
解决办法
22万
查看次数

什么是Lambda?

有人可以提供一个很好的描述Lambda是什么?我们有一个标签,他们是C#问题的秘密,但我还没有找到一个很好的定义和解释他们是什么.

language-agnostic lambda computer-science terminology

92
推荐指数
5
解决办法
1万
查看次数

42
推荐指数
4
解决办法
2万
查看次数

什么是'=>'?(C#语法问题)

我正在观看Silverlight教程视频,我在示例代码中遇到了一个不熟悉的表达式.

什么是=>?它叫什么名字?你能给我一个链接吗?我无法搜索它,因为它们是特殊字符.

码:

        var ctx = new EventManagerDomainContext();
        ctx.Events.Add(newEvent);
        ctx.SubmitChanges((op) =>
        {
            if (!op.HasError)
            {
                NavigateToEditEvent(newEvent.EventID);
            }
        }, null);
Run Code Online (Sandbox Code Playgroud)

.net c#

13
推荐指数
2
解决办法
698
查看次数

C#operator =>是什么意思?

最近一篇文章的答案(模仿时间的任何机会()C#中的Ruby方法?)在用法示例中使用=>运算符.这个运营商做什么?我无法在我的C#书中找到它,并且很难在网上搜索这样的符号.(我找不到.)

c# operators

6
推荐指数
1
解决办法
701
查看次数

运算符'=>'在C#中意味着什么?

本声明中的"=>"表示什么?

del = new SomeDelegate(() => SomeAction());
Run Code Online (Sandbox Code Playgroud)

以上声明是否与此相同?

del = new SomeDelegate(this.SomeAction);
Run Code Online (Sandbox Code Playgroud)

谢谢.

c# lambda delegates

6
推荐指数
1
解决办法
1919
查看次数

s => s =='w' - 帮助我理解这行代码

我是C#的新手和一般的编码,对我正在做的一项练习有疑问.我正在关注w3resource的练习,我遇到了一个挑战,我必须解决这个问题:"编写一个C#程序来检查给定的字符串是否包含1到3次'w'字符."

我的解决方案是:

    var theString = Console.ReadLine(); 
    var theArray = theString.ToCharArray();
    int betweenOneAndThree = 0;

        for (int i = 0; i < theArray.Length - 1; i++)
        {
            if (theArray[i] == 'w')
                betweenOneAndThree++;
        }
        Console.WriteLine(betweenOneAndThree >= 1 && betweenOneAndThree <= 3);
        Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)

这工作得很好,但我检查了他们的解决方案,它是这样的:

Console.Write("Input a string (contains at least one 'w' char) : ");
            string str = Console.ReadLine();
            var count = str.Count(s => s == 'w');
            Console.WriteLine("Test the string contains 'w' character  between 1 and 3 times: ");
            Console.WriteLine(count >= 1 && …
Run Code Online (Sandbox Code Playgroud)

c#

0
推荐指数
1
解决办法
102
查看次数

感到困惑的是C#lambda表达式

我一直在学习lambda表达式,当我终于可以阅读/理解=>运算符时,我很高兴,这对我来说意味着"在哪里"

List<int> a = new List<int>(){0,1,2,1,3,4,5,6,7,8,9};
IEnumerable<int> b = a.FindAll(x => x>=5);
foreach (int x in b)
Console.WriteLine(x);
Run Code Online (Sandbox Code Playgroud)

阅读上面这一行,个人有意义地把它读作"从这个列表中查找所有x的WHERE x大于或等于5",非常好.但后来我遇到了使用Select方法对lambda表达式的不同用法.

List<int> a = new List<int>(){0,1,2,1,3,4,5,6,7,8,9};
IEnumerable<int> b1 = a.Select(x => x*2);
foreach (int x in b)
Console.WriteLine(x);
Run Code Online (Sandbox Code Playgroud)

有了这个,之前读取这个操作符的方法没有意义,因为对我来说这个代码做了"For each x return x*2",这与前一个案例中的同一个操作符的功能非常不同. .我知道.FindAll和.Select之间的区别在于处理输入和输出参数的不同方式,但我在谈论在lambda表达式中使用operator =>.

c# lambda

-3
推荐指数
1
解决办法
1002
查看次数