How to "cast" from generic List<> to ArrayList

We are writing new code using generic List<> , e.g. List<MyClass>.
 
However we have legacy functions, that are expect ArrayList as a parameter.
It is a second time, when I and my colleague asked, how to "cast" generic List<MyClass> to ArrayList.
The answer is simple- just use ArrayList constructor with ICollection parameter.
Note that it is not real cast, it  copies  references to ArrayList.


var list=new List<MyClass>();

//Fill list items

ArrayList al=new ArrayList(list);//"cast"- 

 
If you need opposite operation -Convert ArrayList to a Generic List,
you can filter all elements of arrayList that can be cast to the same type using Enumerable.OfType(Of TResult) Method
 
List<MyClass> typedList = arrayList.OfType<MyClass>().ToList();
 
 

 

 


 

posted @ Saturday, June 05, 2010 9:10 PM
Print

Comments on this entry:

No comments posted yet.

Your comment:



(not displayed)


 
 
 
 
 

Live Comment Preview:

 
«May»
SunMonTueWedThuFriSat
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789