Я пытаюсь перетасовать колоду карт, случайно беря карты с одной колоды и помещая их в другую, чтобы избежать дублирования карт после их добавления в новый список они удаляются из исходного списка, что, по-видимому, вызывает ошибку вне диапазона, несмотря на мои усилия по деинкреации диапазона случайного числа. Предложения, пожалуйста?Аргумент за пределами допустимого диапазона - Карточка Shuffle
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
Кроме того, вы пробовали этот oneliner 'List shuffledDeck = myDeck.Orderby (_ => rNumber.Next()). ToList();'? SO полна ответов такого типа. –
I4V