public override ISet<string> SetCellContents(string name)
{
HashSet<String> list = graph.GetDependents(name);
return list;
}
Graph.getDependents(name)
返回IEnumerable
中的HashSet<String>
。我收到错误消息:
“无法从IEnumerable转换为ISet”
我不确定该怎么办?
答案 0 :(得分:6)
您应该实例化一个新的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
之类的东西。