我想在hashset上使用foreach,但VS不会允许它 这就是我到目前为止所做的:
{
class Team
{
private HashSet<HeroStats> team;
public Team()
{
}
public void add(HeroStats hero) {
if (team.Count <= 5)
team.Add(hero);
else Console.WriteLine("Team is full , create another team");
}
public Team print(Team team) {
List<HeroStats> l;
foreach (HeroStats h in team)
l.Add(h);
return l;
}
}
}
使用此代码,VS表示foreach语句无法对“ConsoleApplication3.model.data.domain.Team”类型的变量进行操作,因为“ConsoleApplication3.model.data.domain.Team”不包含“GetEnumerator”的公共定义”。
答案 0 :(得分:5)
这里有两个有冲突的team
;有:
HashSet<HeroStats> team
(字段)Team team
(参数)第二个优先于此,但你谈的是“关于hashset的foreach”,所以我猜你的意思是迭代字段:
foreach (HeroStats h in this.team)
l.Add(h);
(但请注意,您永远不会将l
初始化为新列表)
或更简单:
return this.team.ToList();
但请注意,这些都不会使用传入的Team team
。