C# 系统。Linq和IEnumerable组帮助

C# 系统。Linq和IEnumerable组帮助,c#,linq,ienumerable,C#,Linq,Ienumerable,我刚刚被Linq和IEnumerable弄湿了脚,我需要帮助确定我的对象是否包含纸牌游戏的匹配项。我想如果我找到了第一个,我需要做的另一个匹配检查就会到位 public class Card { pubic int Value { get; set; } public Card(int value) { this.Value = value; } } public bool IsCompletedSet(List<Card> card

我刚刚被Linq和IEnumerable弄湿了脚,我需要帮助确定我的对象是否包含纸牌游戏的匹配项。我想如果我找到了第一个,我需要做的另一个匹配检查就会到位

public class Card
{
    pubic int Value { get; set; }
    public Card(int value)
    {
        this.Value = value;
    }
}

public bool IsCompletedSet(List<Card> cards)
{
    var cardValueGroups = cards.GroupBy(card => card.Value);
    //How do I determine that there are now exactly two groups of cards
    //and that each group contains exactly 3 cards each?
}
公共类卡
{
公共int值{get;set;}
公共卡(整数)
{
这个。值=值;
}
}
公共布尔值完整集(列表卡)
{
var cardValueGroups=cards.GroupBy(card=>card.Value);
//我如何确定现在正好有两组卡
//每一组正好有3张卡片?
}

要获取组数:

cardValueGroups.Count()
为了确保他们都有三张卡片:

cardValueGroups.All(g => g.Count() == 3)

太好了,谢谢你的快速回复。我将对此进行研究,以了解它在做什么,然后看看如何将其应用到我的其他比赛测试中。荣誉需要明确的是,您应该在cardValueGroups上进行这些调用,因为这些调用是在执行GroupBy之后使用的(因此您有一个枚举)。感谢Chris提供的额外信息,我刚才在一张“卡”上尝试模拟时发现了这一点,但它不起作用。现在我知道为什么了!:)