小编典典

如何使用单个值填充/实例化 C# 数组?

all

我知道 C# 中值类型的实例化数组会自动填充该类型的默认值(例如,布尔为 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;
 }

必须遍历数组并将每个值“重置”为 true 似乎效率低下。有没有办法解决?也许通过翻转所有值?

在输入这个问题并考虑之后,我猜测默认值只是 C# 如何在幕后处理这些对象的内存分配的结果,所以我想这可能是不可能的。但我还是想确定一下!


阅读 105

收藏
2022-05-20

共1个答案

小编典典

不知道框架方法,但您可以编写一个快速助手来为您完成。

public static void Populate<T>(this T[] arr, T value ) {
  for ( int i = 0; i < arr.Length;i++ ) {
    arr[i] = value;
  }
}
2022-05-20