What is the best way to convert a non-generic collection to a generic collection? Is there a way to LINQ it?
I have the following code.
public class NonGenericCollection:CollectionBase
{
public void Add(TestClass a)
{
List.Add(a);
}
}
public class ConvertTest
{
public static List<TestClass> ConvertToGenericClass( NonGenericCollection collection)
{
// Ask for help here.
}
}
Thanks!
Since you can guarantee they're all TestClass instances, use the LINQ Cast<T> method:
public static List<TestClass> ConvertToGenericClass(NonGenericCollection collection)
{
return collection.Cast<TestClass>().ToList();
}
Edit: And if you just wanted the TestClass instances of a (possibly) heterogeneous collection, filter it with OfType<T>:
public static List<TestClass> ConvertToGenericClass(NonGenericCollection collection)
{
return collection.OfType<TestClass>().ToList();
}