public List <MsNResult> getMsNByTime(string path, int msN, double time) { var list = new List <MsNResult>(); var parser = new BaseParser(path); var msNBlock = parser.airdInfo.indexList.Where(x => x.level == msN) .OrderBy(x => Math.Abs(x.rts.OrderBy(y => Math.Abs(y - time)).FirstOrDefault() - time)) .FirstOrDefault(); var blockValue = parser.parseBlockValue(parser.airdFile, msNBlock); var MzIntensitys = blockValue.OrderBy(x => Math.Abs(x.Key - time)).FirstOrDefault().Value; var mzArray = MzIntensitys.getMzArray(); var intensityArray = MzIntensitys.getIntensityArray(); for (int i = 0; i < mzArray.Length; i++) { var r = new MsNResult(); r.mz = mzArray[i]; r.intensity = intensityArray[i]; list.Add(r); } parser.close(); return(list); }