подсчет чисел в массиве выше определенного уровня с помощью C # - PullRequest
0 голосов
/ 17 марта 2012

У меня есть массив чисел:

int[] array = new int[]{ 18, 5, 10, 12, 15, 18 };

как мне посчитать все числа выше определенного уровня (без повторов)? LINQ поможет?

Например - число 3 выше 10 (18 и 15, 12).

есть только 1 число выше 15 ( 18,18 практически такое же число ).

edit: (извините, забыл об этом)

можно ли считать повторы выше определенного уровня?

т.е.. в моем примере с "15" будет 2 повторения

редактировать 2

мой способ "группировки"

int count1 = array.Where(x => x > 15).Distinct().Count();
int count2 = array.Where( x => x > 15).Count();
int count3 = count2 - count1;

Ответы [ 3 ]

5 голосов
/ 17 марта 2012
int count = array.Where(x => x > 15).Distinct().Count();
2 голосов
/ 17 марта 2012

Далее для подсчета чисел в группе:

int[] array = { 1, 2, 3, 44, 55, 66, 44, 1 };

            var x = array.GroupBy(t => t).Where(g => g.Key > 10).Select(g=>
                                                                          new {
                                                                              Number = g.Key,
                                                                              Count = g.Count()
                                                                            });

          foreach (var n in x)
          {
              Console.WriteLine("Number{0}\nCounts:{1}", n.Number, n.Count);
          }
0 голосов
/ 17 марта 2012

Подсчет минус дубликатов (выходы 4):

int[] array = new int[] { 18, 5, 10, 12, 15, 18 };
int count = array.Where(i => i > 10).Distinct().Count();

Подсчет дубликатов (выходы 2: 18 и 18)

<code>int duplicateCount = array.Where(w => w > 10).GroupBy(g => g).Where(w => w.Count() > 1).SelectMany(s => s).Count();

Или ваше крутое решение:

int count1 = array.Where(x => x > 10).Distinct().Count();
int count2 = array.Where(x => x > 10).Count();
int count3 = count2 - count1;

Ссылки:
Удалить дубликаты из массива
Удалить дубликаты из списка в C #
как найти и напечатать значения дубликатов в массиве в c #?
Как считать дубликаты в списке с помощью LINQ

...