Чтобы получить результаты между запросами, SkipWhile()
и TakeWhile()
будут работать (у обоих есть варианты, которые дают индекс для предиката), но я не думаю, что это именно то, что вы хотите, учитывая ваш образ.
var loadingIndexes = InputList.Select((r, i) => new { Row=row, Index=i })
.Where(x => x.Row.Any(e =>
e.ToString().Contains("Loading"))
.Select(x => x.Index);
var betweenLines = loadingIndexes
.Select(i => InputList
.Skip(i)
.TakeWhile(r => !r.Any(e =>
e.ToString().Contains("FULL")))
.ToList())
.ToList();
Здесь betweenLines
- это List
из List
с DataRow
с, где каждый список находится между DataRow
, содержащим строку «Загрузка» (включительно) и следующим «DataRow», содержащим строку "ПОЛНЫЙ" (эксклюзив).