web-dev-qa-db-ja.com

文字列の配列をList <string>に変換する

私はこれを配列型に.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);
}

このようにしなければならない場合、それを自分のリストにコピーした後で、残っている配列をメモリから解放する方法はありますか?

142
Nick Rolando

List<T>このコンストラクタ を使うだけです。引数として任意のIEnumerable<T>を受け入れます。

string[] arr = ...
List<string> list = new List<string>(arr);
367

.NET 3.5からは、(時に)コードフローを少し良くするLINQ拡張メソッドを使うことができます。

使い方は次のようになります。

using System.Linq; 

// ...

public void My()
{
    var myArray = new[] { "abc", "123", "zyx" };
    List<string> myList = myArray.ToList();
}

PS。他の方法で動作するToArray()メソッドもあります。

17
andrew.fox