Взять рандомную строку из временного списка и добавить в другой список C#

SlipDez

Client
Регистрация
18.07.2018
Сообщения
375
Благодарностей
70
Баллы
28
Под конец дня немного подтупливаю подскажите что я делаю не так. Задача перемешать номера от 0 до 13(не включительно). Решил сделать это записав во временный список по порядку и брать строку рандомную с удалением и занося в другой список но почему-то выдает всего 7 значений вместо 12. Что я делаю не так?

C#:
var str = project.Lists["q"];
str.Clear();

List <string> tmp = new List <string>();
for (int a = 0; a<13; a++){
    tmp.Add(a.ToString());
}

for (int i = 0 ; i<tmp.Count; i++){
    int k = new Random().Next(0, tmp.Count);
    string s = tmp[k];
    str.Add(s);
    tmp.RemoveAt(k);
  
}
Ошибка где-то во 2 цикле
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 718
Баллы
113

SlipDez

Client
Регистрация
18.07.2018
Сообщения
375
Благодарностей
70
Баллы
28

kagorec

Client
Регистрация
24.08.2013
Сообщения
978
Благодарностей
521
Баллы
93
ChatGPT:
var str = project.Lists["q"];
str.Clear();

List<string> tmp = new List<string>();
for (int a = 0; a < 13; a++)
{
tmp.Add(a.ToString());
}

while (tmp.Count > 0)
{
int k = new Random().Next(0, tmp.Count);
string s = tmp[k];
str.Add(s);
tmp.RemoveAt(k);
}
 
  • Спасибо
Реакции: SlipDez

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)