C#/LINQ Querying a class
本文关键字:class Querying LINQ | 更新日期: 2023-09-27 18:32:44
我正在使用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,
}
您正在选择一个CardNumber
,但试图将其放入甲板中:
// This won't work:
// IEnumerable<Deck> deckQuery =
IEnumerable<CardNumber> deckQuery =
from myCard in deck.Cards
where myCard.Suit == Suit.Club
select myCard.CardNumber;
另一种选择是选择卡本身:
IEnumerable<Card> deckQuery =
from myCard in deck.Cards
where myCard.Suit == Suit.Club
select myCard;
你是说
选择我的卡.卡号;
根据您的定义
public CardNumber CardNumber { get; set; }
它返回一个卡号
你期待的是IEnumerable<Deck>
而不是IEnumerable<CardNumber>
如果你想得到卡,那么只需返回它
select myCard
它应该是IEnumerable<Card>
Deck 类是帮助您使用卡片进行一些操作的类。我认为您正在寻找归还卡片,您不想返回许多套牌
您的错误是"选择CardNumber
并将其分配给Deck
"