public override ISet<string> SetCellContents(string name)
{
HashSet<String> list = graph.GetDependents(name);
return list;
}
Graph.getDependents(name)
返回 IEnumerable
的HashSet<String>
。我收到错误:
"cannot convert from IEnumerable to ISet"
我不知道该怎么办?
最佳答案
您应该实例化一个新的 HashSet
并传递 graph.GetDependents(name)
作为输入。另外如GetDependents
返回IEnumerable<HashSet<string>>
然后使用SelectMany
在创建新的 HashSet
之前展平内部集合”
public override ISet<string> SetCellContents(string name)
{
return new HashSet<string>(graph.GetDependents(name).SelectMany(hs => hs));
}
使用名称 list
作为旁注对于不是 List<T>
的东西(或一般而言)不是一个好的做法。您可以使用类似 dependenciesSet
的内容相反。
关于c# - 从 IEnumerable 转换为 ISet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52566577/