我找到了一个我完全理解的小脚本。例如,我有一个带有“1 -2 5 40”的字符串。它读取输入字符串,将其拆分为一个临时数组。然后解析这个数组并将每个元素转换为一个整数。整个过程是为了将最接近的整数赋给零。
但我不明白的是符号Select(int.Parse)。这里没有 lambda 表达式,也没有用括号调用方法 int.Parse。与 OrderBy(Math.Abs)
相同提前谢谢你=)
var temps = Console.ReadLine().Split(new []{' '}, StringSplitOptions.RemoveEmptyEntries);
var result = temps.Select(int.Parse)
.OrderBy(Math.Abs)
.ThenByDescending(x => x)
.FirstOrDefault();
最佳答案
int.Parse
是一个方法组 - 您看到的是方法组到委托(delegate)的转换。要在没有 LINQ 的情况下查看它:
Func<string, int> parser = int.Parse;
int x = parser("10"); // x=10
它主要等同于:
Func<string, int> parser = text => int.Parse(text);
...尽管如果您想深入了解细节,会有很多差异 :)
关于C# 符号理解 Select(int.Parse),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44434670/