想象一个场景,使用 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 类应该有一些对其范围进行排序、检测重叠并返回给定值的相应范围的基本方法。
我玩过这个,但事情很快变得非常复杂。有没有其他人看到过这个的实现,或者想试一试?
顺便提一句。我知道有类似的线程可以处理范围,但它们没有充分处理“小于或等于”和“小于”之间的区别。