我正在对著名的 C# 库C5进行间隔集合扩展。该接口定义了一个具有可比较端点的间隔(删除了不相关的成员):IInterval
public interface IInterval<T> where T : IComparable<T>
{
T Low { get; }
T High { get; }
}
这通常效果很好,因为间隔端点可以是任何可比较的东西,如整数、日期甚至字符串。
但是,有时能够计算间隔的持续时间是有利的。间隔[3:5)
的持续时间为 2,间隔[1PM, 9PM)
的持续时间为 8 小时。这对于可比对象是不可能的,因为它只给我们元素的顺序,而不是它们的距离,例如,很难给出两个字符串之间的距离。端点类型基本上必须是区间缩放值。
是否有类似的接口IComparable<T>
,它允许我比较一般的端点,但也可以做一些事情,比如减去两个端点以获得持续时间,并将持续时间添加到低端点以获得可用于继承接口的高端点,IDurationInterval<T> : IInterval<T>
例如?
或更简洁:是否有区间缩放值的接口?