我是编程新手。在学习数据结构 Array 时,我开始知道我们必须在创建一个数组时用大小初始化数组。但我也在其中一个网站中看到了一个代码片段,我用它来学习编码。代码如下
int[] ar = Array.ConvertAll(Console.ReadLine().Split(' '), arTemp => Convert.ToInt32(arTemp))
我猜代码是从控制台读取输入(这是一个字符串(并将其拆分为子字符串,然后转换为整数数组并存储在"ar"中。
我的问题是这一行没有错误。但是在使用它们之前没有提到数组大小。这是怎么回事?在这种情况下,此数组的大小在哪里初始化?
来自 MSDN:
Array.ConvertAll()
:将一种类型的数组转换为另一种类型的数组。
在这种情况下,此数组的大小在哪里初始化?
在静态函数Array.ConvertAll()
,大小数组基于您的输入数组。
在您的情况下,输入数组是Console.ReadLine().Split(' ')
.Split(' ')
返回一个空格分隔的单词数组。此数组的大小分配给Array.ConvertAll()
函数的输出
int[] ar = Array.ConvertAll(Console.ReadLine().Split(' '), arTemp => Convert.ToInt32(arTemp))
//+ +++++++++++++ ++++++++++++++++++++++++ ++++++
//| | | |
//| | | + Integer convertor
//| | |
//| | + Input array with it's size
//| |
//| + Converting input array to array of type int
//|
//+ Output integer array
intar 是对数组的引用。数组大小在运行时确定。Array.ConvertAll(...( 返回一个数组,即实际对象。创建的这个新数组链接到 ar 变量。