65.9K
CodeProject 正在变化。 阅读更多。
Home

简单的范围结构

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.36/5 (11投票s)

2003年3月11日

1分钟阅读

viewsIcon

52243

downloadIcon

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) - 如果值在当前范围内,则返回 true
  • int Saturate(int value) - 将值强制在当前边界之间
  • void Offset(int o) - 将范围移动 o
  • void Resize(int s) - 将上限移动 s

Range 结构声明为 ICollection,这意味着它可以作为简单的顺序数字生成器使用。例如

foreach(int i in new Range(1, 10)) Console.Out.WriteLine(i);

由于该结构仅由两个字段组成,而这两个字段通常成对访问,因此我认为将其声明为值类型是合理的选择。

© . All rights reserved.