C# 符号理解 Select(int.Parse)

标签 c# linq lambda expression notation

我找到了一个我完全理解的小脚本。例如,我有一个带有“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/

相关文章:

c# - xml到linq与两个类c#

c# - Select() 命令的 System.Linq.Dynamic.DynamicExpression.ParseLambda 问题

c# - 获取元素页码

c# - 使用 XElement 时如何输入文本

node.js - 如何解析 lambda 中的事件参数?

c# - C# Lambda 中的可变参数

c# - 初始化服务时如何实现using语句?

c# - MVVMCross:在 android xml 中绑定(bind)嵌套属性

c# - 如何在从 asp.net c# 中的另一个下拉列表中选择项目后将项目加载到下拉列表中

c++ - C++ 奇怪行为中的 Lambda 函数