LINQ 中的标准做法是在链中编写方法,一个接一个,每个方法独占一行:
var nodes = Enumerable
.Range(0, nodesCount)
.Select(z => new Node(z))
.ToArray();
除了 LINQ 之外,还使用类似的方法来链接对常规方法的调用,以简化阅读和理解并减少行长度。然而,在我看来,使用它们时,并不是所有事情都像使用 LINQ 那样逻辑和直观。
例如,请告诉我如何将以下链分解为 3-4 行:
return CreateFromCsFiles(OpenFileHelper.OpenCodeFile(File.ReadAllText(pathToCsprojFile)).ToArray());
不管我怎么尝试,结果仍然是粥。提前致谢!
您可以输入其他变量:
有些语言有一种特殊的管道运算符——管道运算符。例如,在 F# 中,这是
|>.如果您有兴趣,可以在文档中查看它的应用。如果没有,您可以在 C# 中创建一个扩展方法。
代码取自ScottWlaschin 的面向管道编程(pdf 链接)。还有作者的同名视频。
使用它,代码可以这样写: