删除卡组中的特定卡片

所以我制作了一副带有枚举的卡片组。但现在我需要通过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

回到顶部