Как я могу преобразовать/вывести arraylist в список? Я использую arraylist, потому что я использую функцию профилей ASP.NET, и это было похоже на боль для хранения Списка в профилях.
Примечание: Другая опция состояла бы в том, чтобы перенести Список в собственный класс и покончить с ArrayList.
http://www.ipreferjim.com/site/2009/04/storing-generics-in-asp-net-profile-object/
Самый простой способ преобразовать ArrayList
, полный объектов типа T
, заключается в следующем (при условии, что вы используете .NET 3.5 или выше):
List<T> list = arrayList.Cast<T>().ToList();
Если вы используете 3. 0 или более ранние версии, вам придется зациклиться:
List<T> list = new List<T>(arrayList.Count);
foreach(T item in arrayList) list.Add(item);
Это также работает в Framework <3.5:
Dim al As New ArrayList()
al.Add(1)
al.Add(2)
al.Add(3)
Dim newList As New List(Of Int32)(al.ToArray(GetType(Int32)))
C #
List<int> newList = new List<int>(al.ToArray(typeof(int)));
Вы можете использовать Linq, если используете .NET 3.5 или выше. using System.Linq;
ArrayList arrayList = new ArrayList();
arrayList.Add( 1 );
arrayList.Add( "two" );
arrayList.Add( 3 );
List<int> integers = arrayList.OfType<int>().ToList();
В противном случае вам придется скопировать все значения в новый список.
ArrayList a = new ArrayList();
object[] array = new object[a.Count];
a.CopyTo(array);
List<object> list = new List<object>(array);
В противном случае вам просто нужно будет выполнить цикл по вашему списку массивов и добавить его в новый список.