Это возможное так или иначе в C#: если (== b == c == d) {…}

Существует ли быстрый способ сравнить равенство больше чем одного значения в C#?

something like:

if (5==6==2==2){

//do something

}

Спасибо

6
задан pencilCake 30 April 2010 в 09:01
поделиться

5 ответов

public static class Common {
    public static bool AllAreEqual<T>(params T[] args)
    {
        if (args != null && args.Length > 1)
        {
            for (int i = 1; i < args.Length; i++)
            {
                if (args[i] != args[i - 1]) return false;
            }
        }

        return true;
    } 
}

...

if (Common.AllAreEqual<int>(a, b, c, d, e, f, g)) 

Это может помочь:)

15
ответ дан 8 December 2019 в 02:02
поделиться
if (a == b && b == c && c == d) {
    // do something
}
30
ответ дан 8 December 2019 в 02:02
поделиться

Нет, это невозможно, вы должны разбить его на отдельные операторы.

if(x == y && x == z) // now y == z
{
}

Удачи

5
ответ дан 8 December 2019 в 02:02
поделиться

В C# оператор равенства (==) вычисляет bool, поэтому 5 == 6 вычисляет до false.

Сравнение 5 == 6 == 2 == 2 будет переводиться в

(((5 == 6) == 2) == 2)

, которое вычисляется в

((false == 2) == 2)

, что попытается сравнить bool с int. Только если вы сравните логические значения таким образом, синтаксис будет допустимым, но, вероятно, не будет делать то, что вы хотите.

Способ многократного сравнения — это то, что предложил @Joachim Зауэр:

 a == b && b == c && c == d
13
ответ дан 8 December 2019 в 02:02
поделиться

Прямого способа сделать это с помощью C # нет, но вы можете использовать вспомогательный класс. Ознакомьтесь с этой темой VB.NET посвященный этой проблеме VB.Net: проверить несколько значений на равенство?

1
ответ дан 8 December 2019 в 02:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: