1
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 }; 
string[] strings = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" }; 

var textNums = 
    from n in numbers 
    select strings[n]; 

Console.WriteLine("Number strings:"); 
foreach (var s in textNums) 
{ 
    Console.WriteLine(s); 
} 

如何使用 Lambda 表达式编写相同的代码......

4

4 回答 4

3
numbers.ToList().ForEach(item => Console.WriteLine(strings[item]));
于 2012-12-21T06:55:52.357 回答
2

我假设您的意思是“从内”-语句?:

var textNs = numbers.Select(i => strings[i]);
于 2012-12-21T06:53:23.607 回答
1
var result=numbers.Select(n=>strings[n]); 

这是正确的,但结果是 type IEnumerable< String >
这里,左边n=>(lambda operator)意思是传递给函数的参数,右边strings[n]=>意思是函数体。

有关 Linq 和 lambda 表达式的更多信息,请参阅: http: //www.codeproject.com/Articles/33769/Basics-of-LINQ-Lamda-Expressions

于 2012-12-21T10:13:08.263 回答
0
var result = numbers.Select(n => strings[n]);
于 2012-12-21T07:01:30.597 回答