[C#]配列(Array)で要素を後ろに追加するには?

C#

どうも、ちょげ(@chogetarou)です。

配列(Array)の後ろに要素を追加する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

配列(Array)で要素を後ろに追加する方法は、2つあります。

Array.Copy()

1つは、Array.Copy()を使う方法です。

まず、Array.Resize()を呼び出します。

Array.Resize()の第1引数に配列の参照、第2引数に配列のLengthプロパティに「+1」した値を指定します。

Array.Resize(ref array, array.Length + 1);

そして、配列(Array)のLengthプロパティを「-1」したインデックスに値を代入します。

array[array.Length - 1] = value;

ここまでの処理で、配列(Array)の後ろに代入した値の要素が追加されます。

使用例

using System;
public class Example
{
	public static void Main()
	{
		int[] numbers = new int[5] { 1, 2, 3, 4, 5 };
		
		Array.Resize(ref numbers, numbers.Length + 1);
		
		numbers[numbers.Length - 1] = 6;
		
		foreach (var i in numbers) 
		{
		    Console.WriteLine(i);    
		}
 	}
}

リスト(List)

もう1つは、リスト(List)を使う方法です。

まず、配列(Array)をリストに変換します。

List<T> list = new List<T>(array);

次に、リストからAdd()メソッドを呼び出します。

Add()メソッドの引数に追加する要素を指定します。

list.Add(element);

最後に、リストからToArray()を呼び出し、リストを配列に変換します。

T[] result = list.ToArray();

上記の方法は、元の配列の後ろに要素を追加した新しい配列を生成します。

もし、元の配列の後ろに要素を追加したい場合は、Array.Resize()で配列のサイズを変更する必要があります。

Array.Resize(ref array, array.Length + 1);

List<T> list = new List<T>(array);
		
list.Add(element);
		
array = list.ToArray();

使用例

using System;
using System.Collections.Generic;
public class Example
{
	public static void Main()
	{
		int[] numbers = new int[5] { 1, 2, 3, 4, 5 };
		
		List<int> list = new List<int>(numbers);
		
		list.Add(6);
		
		int[] result = list.ToArray();
		
		foreach (var i in result) 
		{
		    Console.WriteLine(i);    
		}
 	}
}

まとめ

配列(array)の後ろに要素を追加する方法は、次の2つです。

  • Array.Resize()を使う方法
  • リスト(List)を使う方法

コメント

タイトルとURLをコピーしました