C# 配列に単一の値を設定/インスタンス化するにはどうすればよいでしょうか? 質問する

C# 配列に単一の値を設定/インスタンス化するにはどうすればよいでしょうか? 質問する

C#の値型のインスタンス化された配列には、型のデフォルト値(例: bool の場合は false、int の場合は 0 など)。

デフォルトではないシード値を配列に自動で設定する方法はありますか?作成時またはその後の組み込みメソッド(Javaの配列.fill())? たとえば、デフォルトで false ではなく true であるブール配列が必要な場合、これを実行する組み込みの方法はありますか、それとも 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# がこれらのオブジェクトのメモリ割り当てをバックグラウンドで処理する方法の結果であると思われるので、おそらくこれを行うのは不可能だと思います。しかし、それでも確実に知りたいです。

ベストアンサー1

Enumerable.Repeat(true, 1000000).ToArray();

おすすめ記事