我試圖通過隨機從一個卡組獲取卡並將它們放入其他卡,以避免在將卡添加到新列表時重複卡他們從原始列表中刪除,這似乎導致參數超出範圍錯誤,儘管我努力去遞增隨機數的範圍。請提出建議?參數超出範圍 - 卡洗牌
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]);
}
第一:什麼魔數是51?其次,爲什麼'myDeck.Count + 1'和'rNumber.Next(1,c)'?列表索引基於零,它看起來像你不斷產生「關閉一個」的錯誤。 – Corak 2013-03-17 17:44:46
另外,你試過這個oneliner'List shuffledDeck = myDeck.Orderby(_ => rNumber.Next())。ToList();'? SO充滿了這種類型的答案。 –
I4V
2013-03-17 17:51:07