Не знаю где изменяется список - C#
Формулировка задачи:
Решил написать небольшую десктопную программу, но столкнулся с проблемой и не могу найти источник.
У меня есть несколько списков: изначальный и промежуточные.
Перед циклом я присваиваю промежуточному циклу значение основного, а внутри цикла основному значение промежуточного, т.к. мне каждый раз нужен первоначальный цикл. больше я промежуточный список не трогаю, но уже после первого прогона внутри цикла промежуточный список изменяет свои значения. Никак не могу разобраться где и почему.
Прошу прощения за плохой код, имена переменных и их количество.
int l = 0; p = 0; tren = mass; Random Rand = new Random(); for (l = 0; l < 100000; l++) { mass = tren; u = 0; for (int i = 0; i < mass.Count; i++) // обработка "зачеркивания" цифр { int j = 1; int o = 9; int y = Rand.Next(0, 2); if (y == 0) { if (i + j < mass.Count) { while (mass[i + j] == 0 & i + j <= mass.Count - 2) { j++; } if (mass[i] != 0 & mass[i] == mass[i + j]) { mass[i] = 0; mass[i + j] = 0; u++; } if (mass[i] != 0 & mass[i] + mass[i + j] == 10) { mass[i] = 0; mass[i + j] = 0; u++; } } } else { if (i + o < mass.Count) { while (mass[i + o] == 0 & i + o <= mass.Count - 10) { o = o + 9; } if (mass[i] != 0 & mass[i] == mass[i + o]) { mass[i] = 0; mass[i + o] = 0; u++; } if (mass[i] != 0 & mass[i] + mass[i + o] == 10) { mass[i] = 0; mass[i + o] = 0; u++; } } } } if (p < u) { probi = mass; p = u; } }
Решение задачи: «Не знаю где изменяется список»
textual
Листинг программы
tren = mass.ToArray();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д