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