Gre*_*reg 5 .net generics performance boxing arraylist
我正在编写的代码从非托管代码接收ArrayList,并且此ArrayList将始终包含一个或多个Grid_Heading_Blk类型的对象.我已经考虑将这个ArrayList更改为通用List,但我不确定转换操作是否会如此昂贵以至于无效使用通用列表的好处.目前,我只是foreach (Grid_Heading_Blk in myArrayList)在将ArrayList传递给将使用它的类之后运行一个操作来处理ArrayList内容.
我应该将ArrayList转换为通用类型列表吗?如果是这样,最有效的方法是什么?
下面介绍了一种从 ArrayList 创建通用列表的高性能方法。
List<Grid_Heading_Blk> myList = new List<Grid_Heading_Blk>(source.Count);
myList.AddRange(source.OfType<Grid_Heading_Blk>());
Run Code Online (Sandbox Code Playgroud)
通过调用接受 int 的构造函数,后备存储仅分配一次。
与往常一样,您应该使用您通常使用的任何工具来测量性能。