2013-01-08 12 views
14

を単一の値を持つ整数配列を初期化する可能性の重複:
How do I quicky fill an array with a specific value?は、C#.NETで

等-1せずに単一の値を有する整数配列を初期化する方法はあります各項目を明示的に割り当てる必要はありませんか?

私は

int[] MyIntArray = new int[SomeCount]; 

を持っている場合、基本的には、すべての項目は、デフォルトでは0が割り当てられます。ループを使用せずにその値を-1に変更する方法はありますか?または{}を使用して明示的に各項目を割り当てますか?

+4

の価値を持っている。また、このhttp://stackoverflow.com/questions/13980570/how-to-intialize-integer-array-inをチェックアウトすることを、1000個の要素の配列を作成します。 -c-sharp /これは効率的に行う方法を説明しています。大規模な配列に対してToArrayを使用しない方法については、http://stackoverflow.com/questions/10519275/high-memory-consumption-with-enumerable-rangeを参照してください。 –

答えて

37
int[] myIntArray = Enumerable.Repeat(-1, 20).ToArray(); 
+3

すべてのToArrayに対して '.ToArray()' – mlorbetske

+4

+1を忘れないでください。使用する前に、配列が大きい場合は[Enumerable.Rangeで高いメモリ消費量](http://stackoverflow.com/questions/10519275/high-memory-consumption-with-enumerable-range)をお読みください。 –

+0

int以外の型の場合は、テンプレートフォームを使用します。 Enumerable.Repeat (1,20).ToArray(); – dlchambers

11

あなたは、単一の値(またはわずか数)を持っている場合は、明示的に多くを持っていれば、あなたはEnumerable.Repeat

int[] MyIntArray = Enumerable.Repeat(-1, YourArraySize).ToArray(); 

このように使用することができます collection initializer

int[] MyIntArray = new int[] { -1 }; 

を使用して設定することができます

+1

新しいint [Size]にいくつかのサイズを入れてください。この文は機能しません。あなたが50のような静的なサイズを入れても、 だから、私はこれが正しい答えだとは思わない。 –

+1

@FarhanHafeezあなたは絶対に正しいです、私はもともと質問を間違って読んでいました。私の謝罪を編集するためにすぐに行きました – mlorbetske

15

あなたがEnumerable.Repeatメソッドを使用することができます

int[] myIntArray = Enumerable.Repeat(1234, 1000).ToArray() 

すべてが1234

+1

答えは明らかです。 – ozgur