私はこれを配列型に.ToList()
を使って行った例を見ましたが、これは .Net 3.5以降 でしか利用できないようです。現時点ではアップグレードできないASP.NETプロジェクトで.NET Framework 2.0を使用しているので、疑問に思いました。別の解決策はありますか。配列をループ処理してこのリストに各要素を追加するよりも洗練されたもの(これは問題ではありません。学習目的のためのより良い解決策があるかどうか疑問に思います)
string[] arr = { "Alpha", "Beta", "Gamma" };
List<string> openItems = new List<string>();
foreach (string arrItem in arr)
{
openItems.Add(arrItem);
}
このようにしなければならない場合、それを自分のリストにコピーした後で、残っている配列をメモリから解放する方法はありますか?
List<T>
の このコンストラクタ を使うだけです。引数として任意のIEnumerable<T>
を受け入れます。
string[] arr = ...
List<string> list = new List<string>(arr);
.NET 3.5からは、(時に)コードフローを少し良くするLINQ拡張メソッドを使うことができます。
使い方は次のようになります。
using System.Linq;
// ...
public void My()
{
var myArray = new[] { "abc", "123", "zyx" };
List<string> myList = myArray.ToList();
}
PS。他の方法で動作するToArray()
メソッドもあります。