使用非默认值自动填充 C# 数组
在 C# 中,未初始化的值类型数组会自动使用其各自的默认值进行播种(例如,0 代表 int,false 代表 bool)。但是,是否可以绕过这个并为所有元素设置自定义种子值?
使用 Array.Fill()
Java 的 Arrays.fill() 方法是在 C# 中不可用,因此使用 for 循环的迭代方法仍然是标准方法。迭代数组可能看起来效率低下,但它是直接操作底层内存时的最佳解决方案。
替代方法
尽管缺少内置方法,还有一种使用 LINQ(语言集成)的替代方法Query):
bool[] abValues = Enumerable.Repeat(true, 1000000).ToArray();
此方法利用 Repeat() 和 ToArray() 方法生成重复 1,000,000 次的真值序列,然后将其转换为数组。此方法可确保在初始化数组之前将所有元素设置为 true。值得注意的是,与迭代方法相比,使用 LINQ 可能会带来额外的开销。
内存分配注意事项
正如所怀疑的,默认值在 C# 的内存分配过程中根深蒂固。对于数组。但是,使用 Repeat() 方法可以通过创建具有所需值的新数组来绕过自动初始化,从而有效地规避此行为。
以上是如何使用非默认值自动填充 C# 数组?的详细内容。更多信息请关注PHP中文网其他相关文章!