[英]Is there a way to add a number of elements to the array in C#?
我正在学习 C# 并且我创建了一个代码来使用for
循环将随机数添加到List
中。
class Program
{
static void Main(string[] args)
{
Random numberGen = new Random();
List<int> randomNum = new List<int>();
for (int i = 0; i < 10; i++)
{
randomNum.Add(numberGen.Next(1, 100));
}
for (int i = 0; i < randomNum.Count; i++)
{
Console.WriteLine(randomNum[i]);
}
Console.ReadKey();
}
}
我想知道是否有一种方法可以使用类似的方法将随机数添加到数组中?
数组的大小在创建时是固定的,所以不能添加到数组中; 但是,您可以:创建一个更大的新数组,复制旧数据,然后 append 新值 - Array.Resize
执行前两个步骤 - 但是:这非常昂贵,这就是您通常使用的原因用于此场景的List<T>
或类似的。 List<T>
在后台维护一个超大数组,因此它只需要偶尔调整和复制底层数组(本质上,它每次变满时都会加倍大小,所以你得到的东西接近O(Log2(N))
增长导致的开销)。
您可以直接分配给相关索引,但请注意,您必须将数组初始化为所需的大小(而不是可以动态增长的List
):
int[] randomNum = new int[10];
for (int i = 0; i < randomNum.Length; i++)
{
randomNum[i] = numberGen.Next(1, 100);
}
使用List<T>
,这就是它专门设计的场景。 完成向其中添加元素后,如果您需要一个数组,则只需调用ToArray()
:
var myList = new List<int>();
//add random number of random numbers
var myArray = myList.ToArray();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.