Не знаю где изменяется список - 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();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5
Похожие ответы