using System.Linq;
namespace Common
{
public class DigitalDashBoard
{
private static string RANGE = "0123456789";
private char[] chars;
public DigitalDashBoard(int length)
{
// 仪表盘显示位数
this.chars = new char[length];
// 初始化
for (int i = 0; i < chars.Length; i++)
{
chars[i] = RANGE.ElementAt(0);
}
}
/// <summary>
/// 累加
/// </summary>
/// <returns>是否操作成功</returns>
public bool Add()
{
// 从最后一位开始累加
for (int i = chars.Length - 1; i >= 0; i--)
{
// 累加
int index = RANGE.IndexOf(chars[i]);
if (index < (RANGE.Length - 1))
{
chars[i] = RANGE.ElementAt(index + 1);
// 不溢出则跳出循环
break;
}
chars[i] = RANGE.ElementAt(0);
}
// 判断是否最大值
for (int i = 0; i < chars.Length; i++)
{
if (chars[i] != RANGE.Last())
{
return true;
}
}
return false;
}
/// <summary>
/// 获取值
/// </summary>
/// <returns></returns>
public string GetValue()
{
return new string(chars);
}
}
}