use*_*862 6 .net linq collections ienumerable list
如果我想将Enumerable(IEnumerable<T>)转换为列表.
什么更有效:
myEnumerable.ToList()
要么 new List<T>(myEnumerable)
谢谢!
它们或多或少地执行相同的时间但new List<T>(myEnumerable)速度要快一些.
myEnumerable.ToList()会做一个 new List<T>(myEnumerable)引擎盖,但它会首先检查集合是否为null并抛出异常(如果是).如果您知道myEnumerable不为null,那么您可以使用ToList().
但是,在我看来,编写最容易阅读的代码.这是一个微观优化,你不应该花太多时间.
第一个调用第二个,因此它们在所有意图和目的上都是相同的。
JITter 很可能会内联该ToList()方法,这将使它们与空检查模数相同。可以说,空检查Enumerable<T>.ToList()是多余的,因为List<T>它调用的构造函数也执行空检查。