【发布时间】:2017-02-23 23:08:46
【问题描述】:
考虑您必须将List<T> 类型的mylist 转换为List<Base>,其中T 是Base 的子类
这些解决方案是否相同?哪个性能更好,为什么? 我应该在什么时候使用第一个或第二个?
return mylist.Cast<Base>().ToList();
return mylist.ConvertAll(x => (Base)x);
也许第二种解决方案会更好,因为 mylist 是直接转换的。
在第一个解决方案中,列表先转换为 IEnumerable,然后再转换为列表,但我不确定。
【问题讨论】:
-
你对“更好”的定义是什么?
-
@DavidG 我的意思是性能更好,我会编辑问题
-
在这种情况下,去阅读这个ericlippert.com/2012/12/17/performance-rant
-
@DavidG 我真的很喜欢第一部分 :o)
-
@Scancy 你读过 Eric Lippert 的博客吗?谁是你赛马的赢家?