gpt4 book ai didi

arrays - 将IEnumerable 转换为T []的最佳方法

转载 作者:行者123 更新时间:2023-12-04 05:15:48 32 4
gpt4 key购买 nike

从通用IEnumerable<T>实现转换为T数组的最佳方法是什么?我目前的解决方案如下所示:

IEnumerable<string> foo = getFoo();
string[] bar = new List<string>(foo).ToArray();

通过 List<T>进行传输似乎是不必要的,但是我还没有找到一种更好的方法来进行传输。

注意:我在这里使用C#2.0。

最佳答案

.NET 3.0及更高版本:

ToArray上调用 IEnumerable<T> extension method,它与下面的操作几乎相同,执行类型嗅探和其他一些优化。

.NET 2.0及更低版本:

一般来说,使用 List<T> (将使用 IEnumerable<T> 初始化)然后调用 ToArray 可能是最简单的方法。

constructor for List<T> 将检查IEnumerable<T>以查看其是否实现 ICollection<T> 来获取项数以正确初始化列表的容量。如果没有,它将正常扩展。

当然,您可能最终只是为了将List<T>转换为IEnumerable<T>而创建了许多T[]实例。为此,您可以编写自己的方法,但实际上您只是在复制List<T>中已经存在的代码。

关于arrays - 将IEnumerable <T>转换为T []的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/497943/

32 4 0