C#で配列のサイズ(長さ/アイテム数)を決定するにはどうすればよいですか?
C#で配列のサイズ(長さ/アイテム数)を決定するにはどうすればよいですか?
回答:
1次元配列のa
場合、
a.Length
の要素の数を示しa
ます。
場合にはb
(例えば、矩形の多次元配列ですint[,] b = new int[3, 5];
)
b.Rank
次元数(2)と
b.GetLength(dimensionIndex)
与えられた次元の長さを取得します(次元の0ベースのインデックス付けb.GetLength(0)
-3とb.GetLength(1)
5です)。
詳細については、System.Arrayのドキュメントを参照してください。
@Luceroがコメントで指摘しているように、「ギザギザの配列」という概念があります。これは、実際には(通常は1次元の)配列の1次元配列にすぎません。
たとえば、次のようになります。
int[][] c = new int[3][];
c[0] = new int[] {1, 2, 3};
c[1] = new int[] {3, 14};
c[2] = new int[] {1, 1, 2, 3, 5, 8, 13};
c
すべての3つのメンバーの長さが異なることに注意してください。この場合、前述のようにc.Length
の要素数を示しますc
(3)、およびc[0].Length
、c[1].Length
、およびc[2].Length
それぞれ3,2、及び7、あろう。
int[][]
);-)
[,]
とは、[][]
それはまだ価値がそれは注目にすることができるので、すべての.NET初心者のための明確ではないようで[][]
、あなたの答えの意味での多次元配列ではありません。
b.GetLength[0] is 3 and b.GetLength[1] is 5
ありますb.GetLength(0) and b.GetLength(1)
。
あなたは配列のドキュメントを見ることができますこの質問に対する答えを見つける。
この特定のケースでは、おそらくLengthが必要です。
int sizeOfArray = array.Length;
しかし、これは非常に基本的な質問であり、間違いなくこのような多くの質問があるので、答えを伝えるだけでなく、自分で答えを見つける方法を教えたいと思います。
Visual Studio Intellisense
変数の名前を入力して.
キーを押すと、そのオブジェクトで使用できるすべてのメソッド、プロパティ、イベントなどのリストが表示されます。メンバーを強調表示すると、メンバーの機能の簡単な説明が表示されます。
F1を押す
目的の動作をする可能性のあるメソッドまたはプロパティを見つけたが確信がない場合は、カーソルをその上に移動してF1キーを押すと、ヘルプが表示されます。ここでは、より詳細な説明と関連情報へのリンクを取得します。
探す
検索用語 size of array in C#
は、質問への回答などを示す多くのリンクがあります。プログラマーが習得しなければならない最も重要なスキルの1つは、情報を見つける方法です。特に同じ質問が以前に行われたことがある場合は特に、自分で答えを見つける方が速いことがよくあります。
チュートリアルを使用する
C#の学習を始めたばかりの場合は、チュートリアルに従う方が簡単です。MSDNのC#チュートリアルをお勧めします。本が必要な場合は、Essential C#をお勧めします。
スタックオーバーフロー
自分で答えを見つけることができない場合は、Stack Overflowに質問を投稿してください。ただし、まず自分で答えを見つけるために努力したことを示していただければ幸いです。
これまで見逃されてきたことは、私が突然イライラしたことです。
配列内のアイテムの量を知るにはどうすればよいですか?ある.Length
等しいです.Count
リストの?
答えは:new X[number]
あなたと一緒に作成されたタイプXの配列に入れられたタイプXのアイテムの量はあなた自身を運ぶ必要があります!
例えば。カウンターを使用する:int countItemsInArray = 0
とcountItemsInArray++
、あなたの配列へのすべての割り当てのために。
(で作成した配列には、タイプXの項目(参照)のnew X[number]
すべてのスペースがnumber
すでに割り当てられています。たとえば、最初の割り当てとして内部の任意の場所に割り当てることができます(たとえば、number
= 100および変数名= a
)a[50] = new X();
。
C#が作成時に配列内の各場所の初期値を指定しているかどうかはわかりません。そうでない場合、または比較できない初期値である場合(自分で配列に入力した値である可能性があるため)、から順番に割り当てない場合は、配列内のすでに割り当てられている場所も追跡する必要があります0
(この場合、すべての場所がcountItemsInArray
割り当てられる)。
質問の配列のサイズ(長さ/アイテム数)は、/が「代替」または「除算」を意味するかどうかに応じて、後者をカバーする必要があります(「アイテム数」は、「上記の私のコードの.Length
値に対応するアイテムの量」および他の人が与えたnumber
):
C#にはsizeof
演算子があります(https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/sizeof)。組み込み型(intなど)に使用しても安全です((変数ではなく)型でのみ機能します)。したがって、バイトb
の型の配列のサイズはにint
なりますb.Length * sizeof(int)
。
(前述のように、作成時に既に割り当てられている配列のすべてのスペースが原因で、sizeof
型でのみ機能するsizeof(variable)/sizeof(type)
ため、機能せず、追跡せずにアイテムの量を生成するようなコードはありません。)