我是否必须使用CopyTo将自定义集合转换为可枚举的?

Mik*_*oud 3 .net c# linq ienumerable

请考虑以下代码:

var results = searcher.FindAll();

SearchResult[] srList = new SearchResult[results.Count];
results.CopyTo(srList, 0);
Run Code Online (Sandbox Code Playgroud)

哪里searcher.FindAll()返回一个System.DirectoryServices.SearchResultCollection.

我是否必须使用它CopyTo来将它们变成可以在以后使用的枚举Parallel.ForEach 如果是这样,为什么?

我有,using System.Linq但没有一个ToList方法弹出.

谢谢大家!

jru*_*ell 9

您可以使用Cast<T>()转换SearchResultCollectionIEnumerable<T>,以及ToArray<T>()创建数组.

SearchResult[] results = searcher.FindAll().Cast<SearchResult>().ToArray();
Run Code Online (Sandbox Code Playgroud)

确保包含System.Linq命名空间:

using System.Linq;
Run Code Online (Sandbox Code Playgroud)