【发布时间】:2009-01-22 01:16:49
【问题描述】:
想象一个场景,用户可以使用 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 类应该有一些对其范围进行排序、检测重叠并返回给定值的相应范围的基本方法。
我玩过这个,但事情很快就变得异常复杂。有没有其他人看到过这个的实现,或者想试一试?
顺便说一句。我知道有类似的线程可以处理范围,但它们没有充分处理“小于或等于”和“小于”之间的区别。
【问题讨论】:
-
您的示例未显示。请审核?
-
你的示例应该给出什么价值 xx>=0 && xx
-
显示一些 api 的客户端代码你的想法,这可能有助于我理解你的意图。
标签: c# range collections