Как получить минимальное значение из списка?

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

sdfwef12

Новичок
Регистрация
20.12.2015
Сообщения
17
Реакции
1
Баллы
3
Можете подсказать как из вот такого списка получить минимальное значение:

scr.jpg



Нашел на форме такой код, который сортирует значения, но он корректно работает только для целых чисел. А для типа таких 395.5 сортирует отдельно.
C#:
Развернуть Свернуть Копировать
List<string> numbers = project.Lists["number"].ToList();// зеновский список
project.Lists["number"].Clear();
numbers = numbers.OrderBy(s=>s.Length).ThenBy(s=>s).ToList();
numbers.ForEach(s=>project.Lists["number"].Add(s));

Можете подсказать как его доработать чтобы сортировал все числа и возвращал минимальное, первое и последнее число?
 
тебе надо привести все числа к одной длине строки.
суть в том что сравнение идет как строк и "34" всегда меньше "30.1"
то есть тебе надо привести все цифири к виду 34.0 и 30.1 тогда будет правильно сортировать.
 
тебе надо привести все числа к одной длине строки.
суть в том что сравнение идет как строк и "34" всегда меньше "30.1"
то есть тебе надо привести все цифири к виду 34.0 и 30.1 тогда будет правильно сортировать.

А как это сделать можете подсказать? Как-то через Convert.ToInt32 ?
Я C# никогда не работал. Может быть есть какой-то вариант через стандартный функционал zennoposter получить мин. значение?
 
Операции над списком
74607
Первая строка будет минимальным значением, последняя максимальным
И, соответственно кодом, только список при этом останется неотсортированным
C#:
Развернуть Свернуть Копировать
return numbers.OrderBy(x=>double.Parse(x.Replace(".", ","))).First();//min
//или
return numbers.OrderBy(x=>double.Parse(x.Replace(".", ","))).Last();//max
 
Можно обойтись стандартным экшеном Операции над списком=>Сортировать=>Сортировать как числа, если это возможно.
Потом тем же экшеном берёте первую строку.
74608
 
Можно обойтись стандартным экшеном Операции над списком=>Сортировать=>Сортировать как числа, если это возможно.
Потом тем же экшеном берёте первую строку.

Операции над списком
Посмотреть вложение 74607
Первая строка будет минимальным значением, последняя максимальным

Так сортирует некорректно из-за точки в некоторых цифрах. Вот выше подсказали почему.
суть в том что сравнение идет как строк и "34" всегда меньше "30.1"


И, соответственно кодом, только список при этом останется неотсортированным
C#:
Развернуть Свернуть Копировать
return numbers.OrderBy(x=>double.Parse(x.Replace(".", ","))).First();//min
//или
return numbers.OrderBy(x=>double.Parse(x.Replace(".", ","))).Last();//max

Спасибо большое. Так работает.
Можете подсказать x=>double что значит ? Где-то можно про это почитать? По остальному вроде понятно.
 
Последнее редактирование:

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