如何将ArrayList转换为ArrayList <MyType>

Dav*_*ica 0 .net c# generics casting arraylist

我是来自Java的.net新手.我已经返回一行代码ArrayList,但我知道所有元素都是MyType.我怎样才能轻易地模仿ArrayList?重申一下,我有

ArrayList arr = getArrayList();
Run Code Online (Sandbox Code Playgroud)

而且我要

ArrayList<MyType> arr = getArrayList();
Run Code Online (Sandbox Code Playgroud)

我试过ArrayList<MyType> arr = getArrayList() as ArrayList<MyType>但它说Class 'System.Collections.ArrayList' does not have type parameters

Joe*_*orn 6

ArrayList.Net中没有泛型类型(这是Java的东西).在.Net中,您需要使用List<T>.此外,您不能只是进行转换以进行转换.你需要这样做:

List<MyType> arr = getArrayList().Cast<MyType>().ToList();
Run Code Online (Sandbox Code Playgroud)

虽然我们在这里,你应该检查你是否真的需要一个List,或者一个普通是否IEnumerable<MyType>足够好:

IEnumerable<MyType> arr = getArrayList().Cast<MyType>();
Run Code Online (Sandbox Code Playgroud)

要么

var arr = getArrayList().Cast<MyType>();
Run Code Online (Sandbox Code Playgroud)