删除卡组中的特定卡片
所以我制作了一副带有枚举的卡片组。但现在我需要通过List<T>
删除不同套装中从2到6的所有卡片。这段代码被给出:删除卡组中的特定卡片
private void Window_Loaded(object sender, RoutedEventArgs e) {
var d = new Deck();
Log(Converteer.ToString(d), "NIEUWE DEK");
// this works
d.RemoveNonManilleCards();
Log(Converteer.ToString(d, 8), "MANILLE-DECK");
// should be ->
// ♠A - ♠7 - ♠8 - ♠9 - ♠10 - ♠B - ♠D - ♠H
// ♥A - ♥7 - ♥8 - ♥9 - ♥10 - ♥B - ♥D - ♥H
// ♣A - ♣7 - ♣8 - ♣9 - ♣10 - ♣B - ♣D - ♣H
// ♦A - ♦7 - ♦8 - ♦9 - ♦10 - ♦B - ♦D - ♦H
而这是正在创建的套牌和删除卡片的空白。但我认为我完全错了。
public partial class Deck : List<Card> {
public Deck()
{
MakeDeck();
}
protected virtual void MakeDeck()
{
foreach (Suit k in System.Enum.GetValues(typeof(Suit)))
{
foreach (Rank n in System.Enum.GetValues(typeof(Rank)))
{
this.Add(new Card(k, n));
}
}
}
public void RemoveNonManilleCards()
{
foreach (Suit k in System.Enum.GetValues(typeof(Suit)))
{
foreach (Rank n in System.Enum.GetValues(typeof(Rank)))
{
this.RemoveRange(1, 5);
}
}
}
你们有人能指点我吗?
回答:
我想我找到了如何解决这个问题
public void RemoveNonManilleCards() {
for (int index = Count - 1; index >= 0; --index)
{
Kaart kaart = this[index];
if (card.rank>= Rank.Two&& card.Rank<= Rank.Zes)
this.RemoveAt(index);
}
感谢您的答案!
以上是 删除卡组中的特定卡片 的全部内容, 来源链接: utcz.com/qa/265509.html