(たとえばSystem::Collections::ArrayList
を含む)から配列に変換するにはどうすればよいですか?System::String^
cli::array<String^>
1306 次
1 に答える
3
ArrayListがコード内にあり、変更できる場合は、に変更することを検討してくださいList<String^>
。型の安全性、クラスを使用するときのよりクリーンなコード、より多くの利用可能なLinqメソッドを取得し、そのクラスの通常の組み込みメソッドは、array<String^>
フープを飛び越える必要なしにを返します。
ArrayListには、これを行うための組み込みメソッドがあります。ToArrayを呼び出し、返される配列のタイプを指定します。
ArrayList^ list = ...;
array<String^>^ ar = reinterpret_cast<array<String^>^>(list->ToArray(String::typeid));
他のコレクションタイプ(ジェネリックを使用していない)でこれを行う場合は、より手動で行う必要があります。あなたは手でそれをすることができます:
ArrayList^ list = ...;
array<String^>^ ar = gcnew array<String^>(list.Count);
for(int i = 0; i < list.Count; i++)
ar[i] = dynamic_cast<String^>(list[i]);
または、Linqを使用してArrayListをにIEnumerable<String^>
変換し、それを文字列の配列に変換することもできます。
ArrayList^ list = ...;
array<String^> ar = Enumerable::ToArray(Enumerable::OfType<String^>(list));
于 2012-10-03T16:24:10.447 に答える