private string ProcessUse(DataTable dataTable, ref int dataTableIndex, out List <HbXYZ> hbXyzList) { hbXyzList = new List <HbXYZ>(); if (dataTableIndex > dataTable.Rows.Count - 1) { return("Program error: dataTable index value exceeded range."); } DataRow dataRow = dataTable.Rows[dataTableIndex]; GetHbXyzRow getHbXyzRow = new GetHbXyzRow(dataRow); int testNextIndex = dataTableIndex + 1; if (testNextIndex > dataTable.Rows.Count - 1) { return("End of file encountered during Use Set."); } bool continueLoop = true; while (continueLoop) { dataRow = dataTable.Rows[testNextIndex]; if (dataRow[2].ToString() == "Use") { getHbXyzRow.NextDataRow(dataRow); testNextIndex++; if (testNextIndex > dataTable.Rows.Count - 1) { return("End of file encountered during Use Set."); } } else { continueLoop = false; // Next row is not a Use so break loop } } dataTableIndex = testNextIndex - 1; hbXyzList = getHbXyzRow.HbPoints; return(""); }