我知道C#中实例化的值类型数组会自动填充类型的默认值(例如,对于bool为false,对于int为0等).
有没有办法使用不是默认值的种子值自动填充数组?之后是创建还是内置方法(比如Java的Arrays.fill())?假设我想要一个默认为true的布尔数组,而不是false.是否有内置的方法来执行此操作,或者您只需要使用for循环遍历数组?
// Example pseudo-code:
bool[] abValues = new[1000000];
Array.Populate(abValues, true);
// Currently how I'm handling this:
bool[] abValues = new[1000000];
for (int i = 0; i < 1000000; i++)
{
abValues[i] = true;
}
Run Code Online (Sandbox Code Playgroud)
必须遍历数组并将每个值"重置"为true似乎是无效的.有没有办法解决?也许通过翻转所有价值观?
在输出这个问题并思考之后,我猜测默认值只是C#如何在幕后处理这些对象的内存分配的结果,所以我想这可能不可能做到这一点.但我仍然想知道!
可能重复:
如何使用特定值快速填充数组?
有没有办法初始化一个单值如-1的整数数组而不必显式分配每个项目?
基本上,如果我有
int[] MyIntArray = new int[SomeCount];
Run Code Online (Sandbox Code Playgroud)
默认情况下,所有项目都分配为0.有没有办法在不使用循环的情况下将该值更改为-1?或使用{}明确指定每个项目?
我在Java中使用以下语句:
Arrays.fill(mynewArray, oldArray.Length, size, -1);
Run Code Online (Sandbox Code Playgroud)
请建议等效的C#.