如何将列表复制到数组
我有 Guid 列表,
List<Guid> MyList;
我需要将其内容复制到数组,
Guid[]
请给我推荐一个漂亮的解决方案
I have list of Guid's
List<Guid> MyList;
I need to copy its contents to Array
Guid[]
Please recommend me a pretty solution
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
正如 Luke 在评论中所说,特定的
List
类型已经有一个ToArray() 方法。但如果您使用的是 C# 3.0,则可以利用
ToArray( )
任何IEnumerable
实例上的扩展方法(包括IList
、IList
、集合、其他数组等)关于您的第二个问题:
您可以使用
Select
方法来执行所需的投影:As Luke said in comments, the particular
List<T>
type already has aToArray()
method. But if you're using C# 3.0, you can leverage theToArray()
extension method on anyIEnumerable
instance (that includesIList
,IList<T>
, collections, other arrays, etc.)Regarding your second question:
You can use the
Select
method to perform the needed projection:您应该只需要调用 MyList.ToArray() 即可获取元素数组。
You should just have to call MyList.ToArray() to get an array of the elements.
新方法(在 .Net 2.0 中的通用列表上使用扩展或 ToArray() 方法):
旧方法:
The new way (using extensions or the ToArray() method on generic lists in .Net 2.0):
The old way:
除了 Guid[] MyArray = MyList.ToArray() 之外,还有另一种选择:
如果出于某种原因您已经拥有一个大小合适的数组并且只想填充它,则此解决方案可能会更好(而不是像
List.ToArray()
那样构造一个新的)。Yet another option, in addition to
Guid[] MyArray = MyList.ToArray()
:This solution might be better if, for whatever reason, you already have a properly-sized array and simply want to populate it (rather than construct a new one, as
List<T>.ToArray()
does).使用 Enumerable.ToArray() 扩展方法,您可以执行以下操作
:如果您仍在使用 C# 2.0,则可以使用 列表.ToArray 方法。语法是相同的(除了 C# 2.0 中没有
var
关键字)。Using the Enumerable.ToArray() Extension Method you can do:
If you're still using C# 2.0 you can use the List.ToArray method. The syntax is the same (except there's no
var
keyword in C# 2.0).