Почему выполняется условие if?

Не могу понять, почему выполняется условие

if (st != '(' || st != '[' || st != '{' || 
    st != ')' || st != ']' || st != '}')

причем выполняется только на закрывающие скобки. Вот полный код

static void CheckBrackets(string str)
        {
            Stack<char> stack = new Stack<char>();
            int count = 0;
            
            foreach (var st in str)
            {
                if (st == '(' || st == '[' || st == '{')
                {
                    stack.Push(st);
                    ++count;
                    continue;
                }

                if (st != '(' || st != '[' || st != '{' ||
                    st != ')' || st != ']' || st != '}')
                {
                    Console.WriteLine("зашел сюда");
                    continue;
                }
                
                var peek = stack.Peek();

                if (peek == '(' && st == ')'
                    || peek == '{' && st == '}'
                    || peek == '[' && st == ']')
                {
                    stack.Pop();
                    ++count;
                    continue;
                }

                if (peek == '(' && st != ')'
                    || peek == '{' && st != '}'
                    || peek == '[' && st != ']')
                {
                    Console.WriteLine(++count);
                    return;
                }
            }

            if (stack.Count != 0)
                Console.WriteLine(count);
            else Console.WriteLine("Success");
        }

Скрин работы


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

Автор решения: Igor
if (st != '(' && st != '[' && st != '{' && 
    st != ')' && st != ']' && st != '}')

или

if (!(st == '(' || st == '[' || st == '{' || 
    st == ')' || st == ']' || st == '}'))
→ Ссылка