C# 与可枚举项混淆。在C中选择
我是C和.NET世界的新手。我试图理解以下陈述C# 与可枚举项混淆。在C中选择,c#,lambda,C#,Lambda,我是C和.NET世界的新手。我试图理解以下陈述 var xyz = Enumerable.Repeat(obj, 1).ToList(); var abc = xyz.Select(xyzobj => new res { foo = bar, xyzs = new [] {xyzobj}, }).ToList(); 我知道Select接收一个对象和一个transformer函数,并返回一个新形式的对象。但在这里,它接受一个带有枚举值和另一
var xyz = Enumerable.Repeat(obj, 1).ToList();
var abc =
xyz.Select(xyzobj => new res {
foo = bar,
xyzs = new [] {xyzobj},
}).ToList();
我知道Select接收一个对象和一个transformer函数,并返回一个新形式的对象。但在这里,它接受一个带有枚举值和另一个对象的lambda表达式
我有点困惑。上面的说法与此相似吗
var abc = xyz.Select(xyzobj => {
//some work with xyzobj
//and return object.
}).ToList();
有人能解释一下上面的说法吗?事实上,在我的新工作地点,我的头随着这些说法转来转去
有人能告诉我一些好的资源来理解lambda表达式和枚举吗。C中有两种主要的lambda表达式 表达式如下所示:
x => foo(x);
x => {
// code block
}
它接受一个参数x,并对其执行一些转换foo,返回foox的结果,尽管从技术上讲,它可能不会返回foox is void的结果类型的值
语句lambda如下所示:
x => foo(x);
x => {
// code block
}
这将获取一个参数x并对其执行一些操作,如果提供了显式返回,则可以选择返回一个值。代码块可能由多个语句组成,这意味着您可以声明变量、执行循环等。这在更简单的表达式lambda语法中不受支持。但这只是另一种兰姆达
如果有帮助,您可以将以下内容视为等效内容,尽管如果您试图将其解析为一个实例,它们并不完全等效:
进一步阅读
C语言中有两种主要的lambda表达式 表达式如下所示:
x => foo(x);
x => {
// code block
}
它接受一个参数x,并对其执行一些转换foo,返回foox的结果,尽管从技术上讲,它可能不会返回foox is void的结果类型的值
语句lambda如下所示:
x => foo(x);
x => {
// code block
}
这将获取一个参数x并对其执行一些操作,如果提供了显式返回,则可以选择返回一个值。代码块可能由多个语句组成,这意味着您可以声明变量、执行循环等。这在更简单的表达式lambda语法中不受支持。但这只是另一种兰姆达
如果有帮助,您可以将以下内容视为等效内容,尽管如果您试图将其解析为一个实例,它们并不完全等效:
进一步阅读
首先,从有效代码开始。1 => .. 是无意义的,将导致编译器错误。MSDN是您的最佳选择:。Select只是一个工作的投影。您可能还想看看这个:-首先,从有效代码开始。1 => .. 是无意义的,将导致编译器错误。MSDN是您的最佳选择:。Select只是一个工作的投影。您可能还想看看这个:-