Существует ли быстрый способ сравнить равенство больше чем одного значения в C#?
something like:
if (5==6==2==2){
//do something
}
Спасибо
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))
Это может помочь:)
Нет, это невозможно, вы должны разбить его на отдельные операторы.
if(x == y && x == z) // now y == z
{
}
Удачи
В 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
Прямого способа сделать это с помощью C # нет, но вы можете использовать вспомогательный класс. Ознакомьтесь с этой темой VB.NET посвященный этой проблеме VB.Net: проверить несколько значений на равенство?