如果有以下代码,是否有更简单的方法从1初始化数组到由变量指定的数字?
int nums=5;
int[] array= new int[nums];
for(int i=0;i<num;i++)
{
array[i] = i;
}
也许可以使用linq或一些数组函数来实现?
如果有以下代码,是否有更简单的方法从1初始化数组到由变量指定的数字?
int nums=5;
int[] array= new int[nums];
for(int i=0;i<num;i++)
{
array[i] = i;
}
int[] array = Enumerable.Range(0, nums).ToArray();
使用Enumerable.Range()
方法代替。不要忘记添加System.Linq
命名空间。但这可能会消耗一些内存。你可以像这样使用;
int[] array = Enumerable.Range(0, nums).ToArray();
ToArray
不知道Enumerable.Range
中有多少元素。因此,它需要foreach
所有元素并始终增加容量(使用倍增算法)。因此,您可能会得到一个消耗几乎两倍所需内存的数组。这是我自己关于此问题的问题:Enumerable.Range的高内存消耗? - Tim Schmelter
ToArray
不知道Enumerable.Range
中有多少元素。因此,它需要遍历所有元素并始终增加容量(使用倍增算法)。因此,您可能会得到一个消耗几乎两倍所需内存的数组。 - Tim SchmelterList
这样的东西到你的容量:var items = new List<int>(nums);items.AddRange(Enumerable.Range(0, nums));
- Chris Sinclair