请教个问题:时刻保持有10个人数可以操作,当有第11号人去激活后第11号人的前10人才可以操作,但是当前的第11号不能操作要等到第21个人激活后才可以操作,这个怎么设计
解决方案 »
- Wimfrom textedit上的Tooltip 控件问题
- 我的vs 2005中的工具 怎么没有OLE/COM 对象查看器?
- vs2005打开,左侧有个控件的工具箱列表图,现在没了,怎么叫他出来
- 我页面有6个textbox 如何循环相加这6个textbox的值...........................................................
- 问个菜鸟问题:VS的IDE里怎样给控件加事件?
- 读取内部局域网中所有用户,计算机,以及组?有哪位做过?
- 请问:海量数据搜索 我在数据也问了同样的问题!请问各位有解决办法
- socket.poll()问题
- 用C#来怎样识别全角和半角,怎么实现
- 国内第一款专业的矢量动画制作软件即将发布,基于SVG,采用C#开发
- 数据库查询问题 求大神指导啊
- 串口发送和接收数据
class OperationQueue
{
private List<bool> Statuses = new List<bool>(); public void AddOperator()
{
if (Statuses.Count % 10 == 0 && Statuses.Count > 0)
{
Statuses.ForEach(b => { if (!b) b = true; });
}
Statuses.Add(false);
}
public void AddOperators(int count)
{
Parallel.For(0, count, i => Statuses.Add(false));
int remainCount = Statuses.Count % 10;
Parallel.For(0, Statuses.Count - remainCount, i => { if (!Statuses[i]) Statuses[i] = true; });
}
public override string ToString()
{
return String.Join<int>(", ", Statuses.Select(b => Convert.ToInt32(b)).ToArray());
}
}class Program
{
static void Main(string[] args)
{
OperationQueue queue = new OperationQueue();
queue.AddOperator();
queue.AddOperator();
queue.AddOperator();
queue.AddOperator();
Console.WriteLine(queue);
queue.AddOperators(6);
Console.WriteLine(queue);
queue.AddOperator();
Console.WriteLine(queue);
queue.AddOperators(9);
Console.WriteLine(queue);
queue.AddOperators(3);
Console.WriteLine(queue);
}
}
呵呵,跟队列有什么关系哟~~~ 想问题不要拍脑袋,这题的关键就是取模,
我的代码里有用到 Queue 吗?也没有用到 Queue 的特性吧。
你也可以为这个 OperationQueue 添加其他的方法,EnQueue,DeQueue,等等,但是操作是封装起来的,队列的那些操作逻辑概念是对于外部调用者而言的,但是具体的内部实现是不一样的。就好像 FCL 自己的 Queue<T>,FIFO 这种逻辑也是对于我们使用者的开发人员来说的,它内部的实现却是另外一套思路和逻辑。