Как выбрать наибольшее значение?

  • Автор темы Автор темы RipWay
  • Дата начала Дата начала

RipWay

Client
Регистрация
21.11.2013
Сообщения
114
Реакции
48
Баллы
28
Всем привет. Подскажите как из списка значений выбрать наиболее часто встречающееся?

Например

8
1
1
2
1
344
13
4

Как мне выбрать это значение, а именно (1) ?
 
построить таблицу сопряжения, и отсортировать от большего к меньшему)
Я такие плюшки предпочитаю делать через R
В вашем случае можно и на сниппетах, но хотелось бы точно представлять что будет в списке
 
построить таблицу сопряжения, и отсортировать от большего к меньшему)
Я такие плюшки предпочитаю делать через R
В вашем случае можно и на сниппетах, но хотелось бы точно представлять что будет в списке
парсятся id пользователей которые оставили сообщения, и мне нужен id того кто больше всех оставил сообщений, вот как его выбрать не знаю.
 
  • Оценить
Реакции: LightWood
Попробуйте методом запроса LINQ:
Код:
Развернуть Свернуть Копировать
int result;
return result = (from v in project.Lists["Список 1"] select Convert.ToInt32(v)).GroupBy(g => g).OrderByDescending(o => o.Count()).FirstOrDefault().Key;
Код будет работать если в списке только целые числа.
 
  • Оценить
Реакции: RipWay
Эх... надо таки сесть на попу и добить linq, а то что то проходит мимо меня)
 
Попробуйте методом запроса LINQ:
Код:
Развернуть Свернуть Копировать
int result;
return result = (from v in project.Lists["Список 1"] select Convert.ToInt32(v)).GroupBy(g => g).OrderByDescending(o => o.Count()).FirstOrDefault().Key;
Код будет работать если в списке только целые числа.
Спасибо! Я так понял это код c# ? А можно пример шаблона, а то я программировании 0 (
 
Видимо нужно было сразу мне указать длину возможного id? потому что в логе ошибка

Выполнение действия CSharp OwnCode Значение было недопустимо малым или недопустимо большим для Int32.

А id вот такие
426381599850
426381599850
426381599850
101516983716
571541923079
426381599850
426381599850
426381599850
571541923079
426381599850
426381599850

А если поставить int64 вот такая ошибка в логе

Компиляция кода Ошибка в действии "CS0266" "Неявное преобразование типа "long" в "int" невозможно. Существует явное преобразование (возможно, отсутствует приведение)". [Строка: 2; Cтолбец: 17]
 
Для Long вот такой код:
Код:
Развернуть Свернуть Копировать
long result;
return result = (from v in project.Lists["Список 1"] select Convert.ToInt64(v)).GroupBy(g => g).OrderByDescending(o => o.Count()).FirstOrDefault().Key;

А если Long мало, тогда пробуйте этот код:
Код:
Развернуть Свернуть Копировать
System.Numerics.BigInteger result;
return result = (from v in project.Lists["Список 1"] select System.Numerics.BigInteger.Parse(v)).GroupBy(g => g).OrderByDescending(o => o.Count()).FirstOrDefault().Key;

Чтобы последний код работал - добавьте ссылку на сборку: System.Numerics
 
Последнее редактирование:
  • Оценить
Реакции: RipWay и Nick
Для Long вот такой код:
Код:
Развернуть Свернуть Копировать
long result;
return result = (from v in project.Lists["Список 1"] select Convert.ToInt64(v)).GroupBy(g => g).OrderByDescending(o => o.Count()).FirstOrDefault().Key;

Вот что пишет
Тип Время Сообщение
15:59:43 Выполнение действия CSharp OwnCode Входная строка имела неверный формат.

А если Long мало, тогда пробуйте этот код:
Код:
Развернуть Свернуть Копировать
System.Numerics.BigInteger result;
return result = (from v in project.Lists["Список 1"] select System.Numerics.BigInteger.Parse(v)).GroupBy(g => g).OrderByDescending(o => o.Count()).FirstOrDefault().Key;

Чтобы последний код работал - добавьте ссылку на сборку: System.Numerics
А как добавить эту ссылку?
 
  • Оценить
Реакции: RipWay
Скорее всего строка была не целым числом.

Третий снизу экшен.
Спасибо большое, очень помогли! Код написан правильно, просто была в конце пустая строка, убрал её и все ок! Еще рас спасибо!
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)