我想在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"的变量。团队'因为'ConsoleApplication3.model.data.domain。Team'不包含'GetEnumerator'的公共定义。这里有两个冲突的team
;有:
-
HashSet<HeroStats> team
(字段) -
Team team
(参数)
第二个在这里优先,但是你说的是"foreach on an hashset",所以我猜你的意思是迭代字段:
foreach (HeroStats h in this.team)
l.Add(h);
(尽管注意您永远不会将l
初始化为一个新列表)
或者更简单:
return this.team.ToList();
但是,请注意,它们都不使用传入的Team team
。