See the code sample below. I need the ArrayList
to be a generic List. I don't want to use foreach
.
ArrayList arrayList = GetArrayListOfInts();
List<int> intList = new List<int>();
//Can this foreach be condensed into one line?
foreach (int number in arrayList)
{
intList.Add(number);
}
return intList;
Cast<int>(). ToList();
Generic List stores all data of the data type it is declared thus to getting the data back is hassle free and no type conversions required. 4. Generic List must be used instead of ArrayList unless specific requirement for projects higher than . Net 2.0 Framework.
Try the following
var list = arrayList.Cast<int>().ToList();
This will only work though using the C# 3.5 compiler because it takes advantage of certain extension methods defined in the 3.5 framework.
This is inefficient (it makes an intermediate array unnecessarily) but is concise and will work on .NET 2.0:
List<int> newList = new List<int>(arrayList.ToArray(typeof(int)));
How about using an extension method?
From http://www.dotnetperls.com/convert-arraylist-list:
using System;
using System.Collections;
using System.Collections.Generic;
static class Extensions
{
/// <summary>
/// Convert ArrayList to List.
/// </summary>
public static List<T> ToList<T>(this ArrayList arrayList)
{
List<T> list = new List<T>(arrayList.Count);
foreach (T instance in arrayList)
{
list.Add(instance);
}
return list;
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With