// TODO: call only if registers.Length > {some numer} int FindSolidBlock(Register[] registers, int overhead, ref int start, ref int length) { length = 1; start = registers[0].Address; int finish; for (int i = 1; i < registers.Length; i++) { if (registers[i].Address >= registers[i-1].Address + overhead) { length++; } else { // save current start and len finish = i; return finish; } } finish = registers.Length; return finish; }
public void RemoveRegister(Register register) { if (register != null && RegisterCollection.Contains(register)) RegisterCollection.Remove(register); }