【发布时间】:2022-09-23 05:47:02
【问题描述】:
我正在使用 C#。我想创建一个包含 N 个元素的整数数组,所有元素都具有相同的值:
int[] array = new int[N] {2};
但是该代码不起作用。
N 是 [1..100,000] 范围内的整数
我该怎么做?
-
@harrysrangal 链接是 javascript
-
~390kb 的内存充满了
2s,很有用。
我正在使用 C#。我想创建一个包含 N 个元素的整数数组,所有元素都具有相同的值:
int[] array = new int[N] {2};
但是该代码不起作用。
N 是 [1..100,000] 范围内的整数
我该怎么做?
2s,很有用。
如果你想快速做到这一点,那么你需要去旧学校Array 类并使用相对较新的Fill 方法:
int[] array = new int[100_000];
Array.Fill(array, 2);
有一个 LINQ 替代方案也很不错:
int[] array = Enumerable.Repeat(2, 100_000).ToArray();
但是,公平地说,它在底层使用Array.Fill(array, _current);。
【讨论】:
Enumerable.Range() 方法更清楚。
Array 方法,您只需阅读“用 2s 填充数组”。尽管使用Enumerable.Range 方法时可以很容易地理解发生了什么,但不能直接从代码中读取它。
你可以用 LINQ 做到这一点:
var array = Enumerable
.Range(1, 100_000)
.Select(x => 2)
.ToArray();
【讨论】:
C# 没有类似于其他语言的数组初始化快捷方式。您可以将其填充到循环中,或将 Linq 与 Enumerable.Range 一起使用。 IE:
int N = 10;
var array = Enumerable.Range(1, N).Select(e => 2).ToArray();
【讨论】: