powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как бы красивше написать
6 сообщений из 6, страница 1 из 1
Как бы красивше написать
    #39242008
sanekoffice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
class Interval // значение интервала [] - то есть включительно с обоих концов
{
 int MinValue;
 int MaxValue;
}

void FillIntervals()
{
 List<Interval> Intervals = new Intervals ();
 Intervals .Add(new Interval{MinValue = 10, MaxValue = 50});
 Intervals .Add(new Interval{MinValue = 10, MaxValue = 100});
 Intervals .Add(new Interval{MinValue = 0, MaxValue = 1000});
}

Interval GetActualInterval(List<Interval> intervals, int value)
{
// Вот тут надо выбрать самый вложенный. 
// То есть если заказать value = 20 то [10,50]
// Если value = 60 то [10,100]
// .....
}
...
Рейтинг: 0 / 0
Как бы красивше написать
    #39242023
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Найти подмножество интервалов, удовлетворяющих вхождению. Если их несколько, то выбрать минимальный со значением sqrt((interval.min - value)*(interval.min-value)+(interval.max-value)*(interval.max-value))
...
Рейтинг: 0 / 0
Как бы красивше написать
    #39242048
sanekoffice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pallaris,
Отлично! Спасибо
...
Рейтинг: 0 / 0
Как бы красивше написать
    #39242053
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выбрать все подходящие интервалы, отсортировать по длине и взять первый.

Примерно так
Код: c#
1.
var res = Intervals.Where(n => n.MinValue  >= value && n.MaxValue >= value).OrderBy(n => n.MaxValue - n.MinValue).Take(1);
...
Рейтинг: 0 / 0
Как бы красивше написать
    #39242072
sanekoffice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,
Так даже лучше. Только знак сравнения с максимальным инвертировать
...
Рейтинг: 0 / 0
Как бы красивше написать
    #39242152
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanekofficeDima T,
Так даже лучше. Только знак сравнения с максимальным инвертировать
Напутал немного.
Еще Take(1) можно заменить на First() тогда объект вернется, а не массив.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как бы красивше написать
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]