繁体   English   中英

什么是转换IEnumerable的快速方法 <Foo> 列出 <Foo> 在C#2.0中?

[英]Whats a quick way to convert an IEnumerable<Foo> to List<Foo> in C# 2.0?

我们都知道慢速方式:

foreach..

List构造函数是一个不错的选择

IEnumerable<T> enumerable = ...;
List<T> list = new List<T>(enumerable);

怎么样:

IEnumerable<T> sequence = GetSequenceFromSomewhere();
List<T> list = new List<T>(sequence);

请注意,这是针对序列恰好是IList<T>的情况进行了优化的-然后使用IList<T>.CopyTo 在大多数情况下,它仍然是O(n),但可能比迭代O(n)快得多:)(它还避免了在创建时进行任何大小调整。)

您要在通用列表上使用.AddRange方法。

List<string> strings = new List<string>();
strings.AddRange(...);

..或构造函数..

new List<string>(...);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM