简单的范围结构






1.36/5 (11投票s)
2003年3月11日
1分钟阅读

52243

398
顾名思义,它由两个字段组成,即开始和结束,它们定义了结构所代表的范围的包含边界。
引言
在本文中,我将介绍一个我需要使用的简单数据结构。顾名思义,它由两个字段组成,即开始和结束,它们定义了结构所代表的范围的包含边界。边界之间的关系可能如下所示:
- 结束大于开始
- 结束等于开始,意味着该范围仅由一个代表组成
- 结束比开始小1,意味着该范围为空
该结构包含以下成员:
构造函数
Range(int start, int end)
- 构造具有给定边界的范围Range(ICollection col)
- 将范围设置为集合的下限和上限
属性
int start
- 获取或设置下限int end
- 获取或设置上限int mid
- 获取中心点int []
- 通过基于零的索引获取元素int Count
- 获取元素数量bool Empty
- 如果范围没有元素,则返回 true
函数
void Set(int start, int end)
- 重新定义范围bool Between(int value)
- 如果值在当前范围内,则返回 trueint Saturate(int value)
- 将值强制在当前边界之间void Offset(int o)
- 将范围移动 ovoid Resize(int s)
- 将上限移动 s
Range
结构声明为 ICollection
,这意味着它可以作为简单的顺序数字生成器使用。例如
foreach(int i in new Range(1, 10)) Console.Out.WriteLine(i);
由于该结构仅由两个字段组成,而这两个字段通常成对访问,因此我认为将其声明为值类型是合理的选择。