gpt4 book ai didi

c# - 参数超出范围 - 卡片洗牌

转载 作者:行者123 更新时间:2023-11-30 17:06:18 25 4
gpt4 key购买 nike

我试图通过从一副牌中随机取出牌并将它们放入另一副牌来洗牌,以避免在将牌添加到新列表后将它们从原始列表中删除后得到重复的牌,这似乎导致参数超出范围错误,尽管我努力减少随机数的范围。有什么建议吗?

List<Card> shuffledDeck = new List<Card> ();

for (int i = 0; i <= 51; ++i)
{
int c = myDeck.Count + 1;
int n = rNumber.Next (1, c);
shuffledDeck.Add(myDeck[n]);
myDeck.Remove(myDeck[n]);
}

最佳答案

   List<Card> shuffledDeck = new List<Card> ();

while (myDeck.Count > 0)
{
int c = myDeck.Count;

int n = rNumber.Next (0, c);
var value = myDeck[n];
shuffledDeck.Add(value);
myDeck.Remove(value);

}

您需要确保您的索引不超过实际数组对象的数量。

关于c# - 参数超出范围 - 卡片洗牌,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15463912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com