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


162

私はこれ.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);
}

この方法で行う必要がある場合、リストにコピーした後、残存配列をメモリから割り当て解除する方法はありますか?


1
をクリーンアップする必要はありません。arrガベージコレクターは、あなたよりもはるかに優れた機能を果たします。
マイククリステンセン、

37
具体的には。そして私。実際、ジョン・スキートだけが自分のガベージコレクションを行うことが許可されていると思います。
マイククリステンセン

@MikeChristensenジョン・スキートのコメントに対する賛成投票に抵抗できませんでした。笑
Ctrl S

回答:



26

.Net 3.5以降では、LINQ拡張メソッドを使用できるため、コードフローが少し改善される場合があります。

使用法は次のようになります。

using System.Linq; 

// ...

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.