DOBON.NET DOBON.NETプログラミング掲示板過去ログ

配列要素への一括書き込み

環境/言語:[WindowsXP C#]
分類:[.NET]

C#で、配列の複数要素を一括で変更する方法はありますでしょうか?
for文などループ処理以外で…

例えば、Integer要素数100の配列があったとして、
20番目から50番目までに「1」を格納したいときなど。
■No22579に返信(shimさんの記事)
ループ以外で入れ替えるとなると、
利用する配列をその都度一旦全て消して(初期化して)、
(今回の場合は)20番目〜50番目までが「1」になった状態にもう一度作り直す、という方法がありますね。
> ■No22579に返信(shimさんの記事)

int[] array = Enumerable.Repeat(1, 100).ToArray();

配列の初期化
http://bbs.wankuma.com/index.cgi?mode=al2&namber=19028&KLOG=37

Buffer.BlockCopyとかArray.CopyToとかも調べてみては?
■No22581に返信(やじゅさんの記事)
> int[] array = Enumerable.Repeat(1, 100).ToArray();

条件に合わせると、こうかな。

int[] a = new int[100];
Enumerable.Repeat(1, 31).ToArray().CopyTo(a, 20);

# 手元に VS2008 が無いので、VS2005 + System.Core.dll にて動作確認。
カドルドエグさん、やじゅさん、魔界の仮面弁士さん

ご教授ありがとうございます。
魔界の仮面弁士のご意見、まさに希望の動作です。
VS2008での動作確認できました。
ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板