private bool MoveToNextScan(int direction, bool onlyMs1) { using (var msDataFileImpl = new MsDataFileImpl(Workspace.GetDataFilePath(MsDataFile.Name))) { int scanIndex = Math.Min(msDataFileImpl.SpectrumCount - 1, Math.Max(0, ScanIndex)); if (scanIndex < 0) { return false; } while (true) { scanIndex += direction; if (scanIndex < 0 || scanIndex >= msDataFileImpl.SpectrumCount) { return false; } if (!onlyMs1 || msDataFileImpl.GetMsLevel(scanIndex) == 1) { break; } } ScanIndex = scanIndex; return true; } }