如何在不操作GetEnumerator方法的情况下绕过这个问题?

本文关键字:问题 情况下 操作 方法 GetEnumerator | 更新日期: 2023-09-27 18:11:40

我想在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'的公共定义。

如何在不操作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

相关文章: