C#/ LINQ查询一个类

Las*_*k43 1 c# linq

我正在使用Sam Jenkin的Deck of Cards课程.我正试图查询某些西装的卡片.我收到错误:

无法将类型'System.Collections.Generic.IEnumerable'隐式转换为'System.Collections.Generic.IEnumerable'.存在显式转换(您是否错过了演员?)

我试过移动的东西,但我不理解错误.有人可以帮忙吗?我的代码是:

var deck = new Deck();

IEnumerable<Deck> deckQuery =
            from myCard in deck.Cards
            where myCard.Suit == Suit.Club
            select myCard.CardNumber;
Run Code Online (Sandbox Code Playgroud)

我的Card班级是:

public class Card : ICard
{
    public Suit Suit { get; set; }
    public CardNumber CardNumber { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我的普查员是:

public enum Suit
{
    Club = 1,
    Diamond = 2,
    Heart = 3,
    Spades = 4,
}

public enum CardNumber
{
    Ace = 1,
    Two = 2,
    Three = 3,
    Four = 4,
    Five = 5,
    Six = 6,
    Seven = 7,
    Eight = 8,
    Nine = 9,
    Ten = 10,
    Jack = 11,
    Queen = 12,
    King = 13,
}
Run Code Online (Sandbox Code Playgroud)

Ree*_*sey 5

你正在选择一个CardNumber,但试图把它放到一个套牌中:

// This won't work:
// IEnumerable<Deck> deckQuery =
IEnumerable<CardNumber> deckQuery = 
        from myCard in deck.Cards
        where myCard.Suit == Suit.Club
        select myCard.CardNumber;
Run Code Online (Sandbox Code Playgroud)

另一种选择是选择卡本身:

IEnumerable<Card> deckQuery = 
        from myCard in deck.Cards
        where myCard.Suit == Suit.Club
        select myCard;
Run Code Online (Sandbox Code Playgroud)