Как вы можете сравнить INT со многими другими INT? - PullRequest
0 голосов
/ 13 января 2012

Ну

int a = 20;
int b = 30;
int c = 40;
int d = 50;

if (a > b,c,d)

как бы я подошел к этому, я понятия не имею, что я терплю неудачу на каждом шагу, это были часы

Ответы [ 5 ]

7 голосов
/ 13 января 2012

Если имеется небольшое количество чисел, вы можете просто использовать логическую логику:

if (a > b && a > c && a > d)
{
}

Если вы не знаете заранее количество чисел, как насчет создания коллекции и сравненияПервый номер на номера из коллекции через цикл?

var numbers = { 30, 40, 50 };
if (!numbers.Any(c => 20 <= c))
{
}
5 голосов
/ 13 января 2012

Вы можете поместить их в массив:

int a = 20;
int[] others = { 30, 40, 50 };

if(others.All(o => a > o))
{
    // do something
}
3 голосов
/ 13 января 2012

Поместите их все в список и сделайте это:

if(list.All(x=> a > x))

Или в одну строку:

if(new List<int>{a, b, c, d}.All(x=> a > x))

РЕДАКТИРОВАТЬ Я изменил Max() наAll(x => a > x), потому что a> x не вернет true, когда a == x, тогда как Max () сделает это.

1 голос
/ 14 января 2012

Если все, что вы хотите знать, это то, что число x больше других чисел, вы можете явно сравнить их, например, if(x>b & b>c), или использовать что-то вроде if(list.All(x=> a > x)) , как упомянуто выше.Если у вас много чисел и все, что вам нужно, это большее число, вы можете отсортировать список с помощью быстрой сортировки, которая может быть эффективной, и получить первый элемент.

Это немного отличается, если вам нужно сравнить их иполучить различные сравнения, тогда, вероятно, самая простая вещь - это просмотреть список по списку.

1 голос
/ 14 января 2012

Пример не-LINQ:

if (Math.Max(a, Math.Max(b, Math.Max(c, d))) == a)
{
}
...