Pages

2015/01/06

[C#] ArrayList を List に変換

ArrayList を List に変換するには、以下の方法がある。.NET Framework 3.5 以降では楽に書けるようになっている。
ArrayList arr = new ArrayList();
arr.Add("山口太郎");
arr.Add("山田次郎");
arr.Add("山品三郎");

// .NET Framework 3.5 以降
List lst1 = arr.Cast().ToList();

// .NET Framework 2.0
List lst2 = new List(arr.ToArray(typeof(string)) as string[]);
// キャスト方法は以下でも良い。
List lst3 = new List((string[])arr.ToArray(typeof(string)));
特に注意しなければならないのは、ArrayList はタイプセーフ(厳密な型定義がされていない)ではないので、変換する型とは違う値がある場合は落ちる。元々、ArrayList 自体は今ではあまり推奨されないので、すでにあるソースで、確実にその型のデータが入っていることが保証されている場合のみ以上のような変換をするといい。
Related Posts Plugin for WordPress, Blogger...