如果我想将Ienumerable(IEnumerable<T>
)转换为列表。
效率更高:
myEnumerable.ToList()
或new List<T>(myEnumerable)
谢谢!
答案 0 :(得分:6)
它们或多或少地执行相同的时间,但new List<T>(myEnumerable)
要快一点。
myEnumerable.ToList()
会在底层执行new List<T>(myEnumerable)
,但它会首先检查集合是否为空,如果是,则抛出异常。如果您知道myEnumerable不为null,那么您可以使用ToList()。
但是,在我看来,编写最容易阅读的代码。这是一个微观优化,你不应该花太多时间。
答案 1 :(得分:4)
第一个调用第二个,所以它们将是相同的所有意图和目的。
JITter可能会内联ToList()
方法,这将使它们以模数形式进行无效检查。可以说Enumerable<T>.ToList()
中的空检查是多余的,因为它调用的List<T>
构造函数也执行空检查。
答案 2 :(得分:2)
会是一样的。 (首先是更具可读性。)