配列.Length / Array.Resize()
| 対応: | C# 1.0(2002) |
|---|
配列の要素数を取得する『Length』プロパティと、配列のサイズを変更する『Array.Resize()』メソッドです。
構文
// 配列の要素数を取得します。 配列.Length // 配列を newSize の要素数にリサイズします。元の配列への参照を書き換えます。 Array.Resize(ref T[] array, int newSize) // 多次元配列の特定の次元の要素数を取得します。 配列.GetLength(int dimension)
メソッド一覧
| メンバー | 概要 |
|---|---|
| Length | 配列の全要素数を返します。多次元配列の場合はすべての次元の要素数の積になります。 |
| Array.Resize(ref T[] array, int newSize) | 配列を newSize の長さに変更します。拡張した場合は新しい要素が既定値(数値なら 0、文字列なら null)で初期化されます。縮小した場合は末尾の要素が削除されます。 |
| GetLength(int dimension) | 指定した次元(0始まり)の要素数を返します。一次元配列では GetLength(0) が Length と同じ値になります。 |
サンプルコード
Program.cs
using System;
// Length で要素数を取得します。
int[] scores = { 85, 92, 78, 95, 60 };
Console.WriteLine(scores.Length); // 5
// for ループでよく使われます。
for (int i = 0; i < scores.Length; i++)
{
Console.WriteLine($"[{i}] {scores[i]}点");
}
// Array.Resize() で拡張します。
string[] team = { "八神庵", "草薙京", "テリー・ボガード" };
Console.WriteLine(team.Length); // 3
Array.Resize(ref team, 5);
team[3] = "ブルー・マリー";
team[4] = "ゲーニッツ";
Console.WriteLine(team.Length); // 5
foreach (string name in team)
{
Console.Write(name + " "); // 八神庵 草薙京 テリー・ボガード ブルー・マリー ゲーニッツ
}
Console.WriteLine();
// Array.Resize() で縮小します(末尾から削除されます)。
Array.Resize(ref team, 2);
Console.WriteLine(team.Length); // 2
Console.WriteLine(team[0]); // 八神庵
dotnet script array_length_resize.csx 5 [0] 85点 [1] 92点 [2] 78点 [3] 95点 [4] 60点 3 5 八神庵 草薙京 テリー・ボガード ブルー・マリー ゲーニッツ 2 八神庵
概要
C# の配列は宣言時にサイズが固定されます。『Array.Resize()』は内部的に新しい配列を作成して要素をコピーするため、呼び出し頻度が高いとパフォーマンスに影響します。要素数が動的に変わる場合は、最初から『List<T>』の使用を検討してください。
配列の並べ替えには『Array.Sort() / Array.Reverse()』、要素の検索には『Array.IndexOf() / Array.Copy()』を参照してください。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。