1

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;

Cardのクラスは:

public class Card : ICard
{
    public Suit Suit { get; set; }
    public CardNumber CardNumber { get; set; }
}

私の列挙子は次のとおりです。

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,
}
4

3 に答える 3

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;

もう 1 つのオプションは、カード自体を選択することです。

IEnumerable<Card> deckQuery = 
        from myCard in deck.Cards
        where myCard.Suit == Suit.Club
        select myCard;
于 2013-09-24T21:22:20.110 に答える