在C#.NET中使用单个值初始化整数数组

Far*_*eez 19 .net c#

可能重复:
如何使用特定值快速填充数组?

有没有办法初始化一个单值如-1的整数数组而不必显式分配每个项目?

基本上,如果我有

int[] MyIntArray = new int[SomeCount];
Run Code Online (Sandbox Code Playgroud)

默认情况下,所有项目都分配为0.有没有办法在不使用循环的情况下将该值更改为-1?或使用{}明确指定每个项目?

sca*_*tag 43

int[] myIntArray = Enumerable.Repeat(-1, 20).ToArray();
Run Code Online (Sandbox Code Playgroud)

  • 所有ToArray一次+1.在使用之前,如果您的阵列很大,请阅读[Enumerable.Range的高内存消耗](http://stackoverflow.com/questions/10519275/high-memory-consumption-with-enumerable-range). (4认同)
  • 不要忘记`.ToArray()` (3认同)

SWe*_*eko 18

您可以使用Enumerable.Repeat方法

int[] myIntArray = Enumerable.Repeat(1234, 1000).ToArray()
Run Code Online (Sandbox Code Playgroud)

将创建一个包含1000个元素的数组,这些元素的值均为1234.

  • 只有回答清楚. (2认同)

mlo*_*ske 12

如果您有一个值(或只有几个),您可以使用集合初始值设定项明确设置它们

int[] MyIntArray = new int[] { -1 };
Run Code Online (Sandbox Code Playgroud)

如果你有很多,你可以像这样使用Enumerable.Repeat

int[] MyIntArray = Enumerable.Repeat(-1, YourArraySize).ToArray();
Run Code Online (Sandbox Code Playgroud)