C# C关于选择参数的Linq问题
我对linq中的select方法有基本的了解C# C关于选择参数的Linq问题,c#,linq,C#,Linq,我对linq中的select方法有基本的了解 var arrayIndex = Enumerable.Range(10, 10).ToArray(); 这个将创建一个包含10到19个整数的数组 对于一些实际问题,我需要使用原始数据的索引 经过一些研究,我发现我可以做这样的事情 var multipliedArray = arrayIndex.Select((i, Index) => i * Index).ToArray(); 我知道我是项本身,在这种情况下,我将是整数 所以,只有两个问
var arrayIndex = Enumerable.Range(10, 10).ToArray();
这个将创建一个包含10到19个整数的数组
对于一些实际问题,我需要使用原始数据的索引
经过一些研究,我发现我可以做这样的事情
var multipliedArray = arrayIndex.Select((i, Index) => i * Index).ToArray();
我知道我是项本身,在这种情况下,我将是整数
所以,只有两个问题
我如何知道可以放在括号内的参数的完整列表,如索引
括号中有不同参数的另一个用例是什么
为了更好地理解,您可以参考或在开发环境中使用代码完成 选择中的零件 …是lambda表达式,相当于匿名方法。如果您以非匿名方式编写该方法,它将如下所示:
int Calculate(int i, int Index) {
return i * Index;
}
如果要将方法作为参数传递,则相应的参数必须是与方法签名匹配的委托。给定的计算方法,由于它们共享相同的签名,因此lambda表达式与的签名者匹配。事实证明,Enumerable.select为您提供了,因此您可以使用lambda表达式。另一个更广泛使用的重载接受Func,这是没有索引的版本。没有其他重载,因此lambda表达式中不能有其他参数。键入arrayIndex。选择并观察带有重载的弹出窗口?或者按F1键选择并直接读取?Select只有两个重载,一个有索引,另一个没有索引。看见
int Calculate(int i, int Index) {
return i * Index;
}