我有一個For Loop,它可以處理從主牌中獲得牌並將它們以隨機順序放入牌手套牌中。代碼是:For Loop isnt沒有完全完成
for(int a = 0; a < deckManager.DeckAllCardsPlayer.Count; a++){
int b = Random.Range(0, deckManager.DeckAllCardsPlayer.Count);
if(!PlayerDeck.Contains(deckManager.DeckAllCardsPlayer[b])){
PlayerDeck.Add(deckManager.DeckAllCardsPlayer[b]);
deckManager.DeckAllCardsPlayer.RemoveAt(b);
}
}
在主卡組中有16張卡,但是這個for循環只有8卡。有人可以找出原因嗎?最初,它多次添加一些卡片,這就是爲什麼我添加了'!PlayerDeck.Contains'聲明的原因。我不知道爲什麼它只做16中的8個。
不要從正在迭代的集合中移除項目。只需洗牌吧。 [這裏的東西可能有所幫助](https://stackoverflow.com/q/273313/301857)。 –