在下面的代码中,return语句引发异常。
private IEnumerable<DirectoryEntry> GetDomains()
{
ICollection<string> domains = new List<string>();
// Querying the current Forest for the domains within.
foreach (Domain d in Forest.GetCurrentForest().Domains)
{
domains.Add(d.Name);
}
return domains; //doesn't work
}
这个问题可能有什么解决方案?
最佳答案
将您的方法重新定义为
private IEnumerable<string> GetDomains()
{
...
}
因为您需要的是
string
而不是Domains
或DirectoryEntry
的列表。 (假设您要添加“ d.Name”)而且,仅使用LINQ会容易得多:
IEnumerable<string> domains = Forest.GetCurrentForest().Domains.Select(x => x.Name);
这将返回一个
IEnumerable<string>
,并且不会浪费额外的内存来创建单独的列表。关于c# - 怎么把ICollection转换成IEnumerable?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23795165/