gpt4 book ai didi

c# - 请使用 line => line 和 .toArray 解释这部分 C# 代码中发生了什么

转载 作者:行者123 更新时间:2023-11-30 19:11:16 25 4
gpt4 key购买 nike

代码如下:

File.ReadLines(sourceFilePath).Select(line => line.Split('\t')).ToArray();

我知道在“选择”关键字之前发生了什么。有人可以分解“line => line.Split ...

中发生的事情吗?

我的理解是,我们逐行浏览文本文件,并通过制表符解析和拆分一行输入文本(因为我知道文本是制表符分隔的)。但是,“line => line...”究竟是怎么回事?

在代码行的末尾,文本将进入一个数组。但是当我调试并逐步执行代码并使用本地窗口时,包含已读取内容的数组的名称是什么?如何查看读入数组的内容?

最佳答案

这基本上是说,“对于文件中的每一行,将制表符上的行拆分为一个字符串数组,然后创建这些数组的数组(这样返回的数组中的每个元素都是一个数组) "

Select函数接受某物的可枚举并将函数应用于每个项目,为每个输入值生成 1 个输出值。在其他编程语言中,这称为 map 或投影。

=> 表示编译成委托(delegate)函数的 lambda 表达式。它采用一个名为“line”的参数,其类型由用法推断(因为 ReadLines 返回字符串的 IEnumerable,line 是字符串类型)。

lambda 的主体具有上次调用(对 Split 的调用)产生的值的隐式返回类型。因此,该行表示“在每一行上运行此 lambda”。

最后,调用.ToArray最后(在 lambda 之外)转换 IEnumerable<String[]>Select 返回成数组数组 ( String[][] )。

关于c# - 请使用 line => line 和 .toArray 解释这部分 C# 代码中发生了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12268862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com