C# - よく使うクラス - List - コピー

 クラウディア
1. 概要
2. コピー

1. 概要

 あるリストの部分集合を別のリストへコピーしたかったのですよ。  結局、配列をいったんつくってそれをリスト化する、という手順をふむことになります。  本ページは、下記のサイトを参考にさせていただきました。
List<T>.CopyTo メソッド (System.Collections.Generic) 」
「C# - リストを配列に、配列をリストに変換

2. コピー

 「List」を配列にして、配列を「List」にするという手順を踏みます。

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;

public class MyMain
{
	[Serializable]
	public class myClass
	{
		public int		i	= 0;												// 数値型要素
		public string	s	= String.Empty;										// 文字列型要素
	}

	static public void Main ()
	{
		List<myClass> list = new List<myClass>
			{
				new myClass { i = 1, s = "A" },
				new myClass { i = 2, s = "B" },
				new myClass { i = 3, s = "C" },
				new myClass { i = 4, s = "D" },
				new myClass { i = 5, s = "E" },
				new myClass { i = 6, s = "F" },
			};


		myClass[] arrayMine = new myClass[4];

		list.CopyTo(1, arrayMine, 0, 4);

		List<myClass> listPart = new List<myClass>(arrayMine);

		foreach (myClass myClass in listPart)
		{
	       	Console.WriteLine("数値["+ myClass.i +"] 文字["+ myClass.s +"]");
		}
	}
}
 30行目で、「List」の 1 から 4 個分の要素を配列化しています。  32行目で、配列を「List」に移しています。  ソースを実行モジュールにして、実行すると、下記の結果が得られます。

数値[2] 文字[B]
数値[3] 文字[C]
数値[4] 文字[D]
数値[5] 文字[E]
earthcar(アースカー)