我将 MSDN 上的一个查询语法 Select 示例转换为 Lambda。它可以工作,我已经自己写了出来,但是我无法理解下面被注释的行。我的意思是,我正在从 numbers 数组中进行选择,但它却可以正常工作,并且不是显示 digits 而是显示等价字符串。它是如何匹配这两个数组的?
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
string[] strings = {"zero", "one", "two", "three", "four",
"five", "six", "seven", "eight", "nine" };
//Confusing line: **How would we represent this line below in plain english?**
var result = numbers.Select(d => strings[d]);
foreach (var d in result)
{
Console.WriteLine(d);
}
输出:
five
four
one
..rest of numbers follow
使用查询语法的原始MSDN代码:
var result=
from n in numbers
select strings[n];
foreach (var s in strings)
{
Console.WriteLine(s);
}
也许解释这样的事情有点棘手,但我希望有人能用恰当的话语来使其变得更加清晰易懂 :)
谢谢。
d => ...
意味着foreach d ...
。 - jbabeystrings
而不是result
? - Oded.Select()
方法中使用lambda语法吗? - mao47