C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#でArrayListの要素を新しい配列にコピーする方法(ToArrayメソッドの使い方)

C#でArrayListの要素を新しい配列へコピーするには、ToArray() メソッドを使用します。このメソッドは、ArrayList内のすべての要素を object 型の配列として返します。本記事では、文字列と数値の2つのサンプルコードを使って、具体的な使い方と実行結果を解説します。

ToArray()メソッドとは

ToArray() は、System.Collections名前空間のArrayListクラスが提供するメソッドで、呼び出し元のArrayListに格納されている要素を順番どおりに新しい配列へコピーします。戻り値は object[] 型となるため、必要に応じて各要素を元の型にキャストして扱います。

例1:文字列のArrayListを配列にコピーする

まずは、文字列「A」から「J」までを格納したArrayListを、配列へコピーする例を見てみましょう。

using System;
using System.Collections;

public class Demo {
   public static void Main(){
      ArrayList list = new ArrayList(10);
      list.Add("A");
      list.Add("B");
      list.Add("C");
      list.Add("D");
      list.Add("E");
      list.Add("F");
      list.Add("G");
      list.Add("H");
      list.Add("I");
      list.Add("J");

      Console.WriteLine("ArrayListの要素...");
      foreach(string str in list){
         Console.WriteLine(str);
      }

      Console.WriteLine("ArrayListからコピーされた配列の要素...");
      object[] ob = list.ToArray();
      foreach(string str in ob){
         Console.WriteLine(str);
      }
   }
}

実行結果

上記のコードを実行すると、次のような出力が得られます。ArrayListの要素がそのまま配列へコピーされていることが確認できます。

ArrayListの要素...
A
B
C
D
E
F
G
H
I
J
ArrayListからコピーされた配列の要素...
A
B
C
D
E
F
G
H
I
J

例2:数値のArrayListを配列にコピーする

続いて、整数値を格納したArrayListを配列へコピーする例です。要素の型が異なっても、同じように ToArray() を使ってコピーできます。

using System;
using System.Collections;

public class Demo {
   public static void Main(){
      ArrayList list = new ArrayList(10);
      list.Add(100);
      list.Add(200);
      list.Add(300);

      Console.WriteLine("ArrayListの要素...");
      foreach(int val in list){
         Console.WriteLine(val);
      }

      Console.WriteLine("ArrayListからコピーされた配列の要素...");
      object[] ob = list.ToArray();
      foreach(int val in ob){
         Console.WriteLine(val);
      }
   }
}

実行結果

実行すると、以下のようにArrayList内の数値がそのまま配列へコピーされます。

ArrayListの要素...
100
200
300
ArrayListからコピーされた配列の要素...
100
200
300

まとめ

ArrayListの要素を新しい配列にコピーするには、ToArray() メソッドを使うのが最も簡単です。戻り値は object[] 型になるため、foreachループなどで取り出す際は適切な型で受け取るようにしましょう。なお、現在のC#では型安全な List<T> の使用が推奨されており、その場合は CopyTo() メソッドやLINQの ToArray() 拡張メソッドでも同様に配列への変換が可能です。

  1. Pythonでリストの重複要素を出力するプログラムの書き方

    リスト(配列)の中から重複している要素を見つけて出力したい場合、リストの各要素を順番に取り出して比較する、ネストされたループ(二重ループ)を使うのが基本的なアプローチです。以下に具体的な実装例を示します。サンプルコードmy_list = [1, 2, 5, 6, 8, 9, 3, 4, 8, 9, 1, 8] print(リストの内容 :) print(my_list) print(重複している要素は次のとおりです : ) for i in range(0, len(my_list)): for j in range(i+1, len(my_list)): if(my_

  2. Pythonでリスト(配列)の要素を左に回転させる方法を徹底解説

    Pythonでは、リスト(配列)の要素を左に回転させたい場合、リストを反復処理しながら、指定した回数だけ要素の位置をずらしていくことで実現できます。 本記事では、for文を使った基本的な左回転の実装方法を、サンプルコードと実行結果とともにわかりやすく解説します。さらに、スライスを使ったより簡潔な書き方もあわせてご紹介します。 サンプルコード my_list = [11, 12, 23, 34, 65] n = 3 print(元のリスト:) for i in range(0, len(my_list)): print(my_list[i]) for i in range(0, n