Представьте себе сценарий, в котором, используя xml, пользователь может гибко указывать диапазоны, используя любую комбинацию "gte", "gt", "lte", "lt" или "eq".
Вот несколько примеров
<rangeElement gte="0" lt="5" ... />
<rangeElement gt="3" lte="7" ... />
<rangeElement eq="5" ... />
<rangeElement gt="10.5" ... />
Теперь мне нужны два класса, Range и RangeCollection, которые могут справиться с ними.
Класс Range может выглядеть примерно так:
public class Range
{
public LowerBoundInclusive { get; set; }
public LowerBoundExclusive { get; set; }
public UpperBoundInclusive { get; set; }
public UpperBoundExclusive { get; set; }
public object Data { get; set; }
public Range(XElement xmlElement)
{
....
}
}
Класс RangeCollection должен иметь некоторый базовый способ сортировки его диапазонов, обнаружения перекрытий и возврата соответствующего диапазона при заданном значении.
У меня была игра с этим, но вещи быстро становятся чертовски сложными. Кто-нибудь еще видел реализацию этого или хочет попробовать?
КСТАТИ. Я знаю, что есть похожие потоки, которые работают с диапазонами, но они не имеют адекватного отношения к разнице между «меньше или равно» и «меньше чем».