C# Переменная bool изменяется сама по себе

Переменная bool изменяется сама по себе начиная с фрагмента else if.флаг true

флаг false

bool flag = false;
for (int i = 0; i < list_obr.Count; i ++)
{
    if (list_obr[i] == "-")
    {
        flag = true;
        continue;
    }

    if (flag = true && list_obr[i] == "Климов С. А.")
    {
        if (main_tab.ContainsKey(list_obr[i + 1]))
        {
            main_tab[words_obr[i + 1]].obr++;
            count_all++;
            count_obr++;
            flag = false;
        }
        else
        {
            main_tab.Add(words_obr[i + 1], new list { obr = 1 });
            count_all++;
            count_obr++;
        }
    }

    else if (flag == true & main_tab.ContainsKey(list_obr[i]))
    {
        main_tab[list_obr[i]].obr++;
        count_all++;
        count_obr++;
        flag = false;
    }

Ответы (1 шт):

Автор решения: Kalmankantaja

Потому что в условии на 149 строке вы задаете значение переменной flag, необходимо написать if(flag == true...), а не if(flag = true...). Для избежания подобных ошибок можно использовать другой синтаксис:

if(flag) - экивалентно if(flag == true)

if(!flag) - эквивалентно if(flag == false)

→ Ссылка