(line of code of interest is the last one, the rest is just for a full representation)
Using the following code, I wanted to take VOTERS until I exceeded
I was facing the same problem. I have used Union and Skip methods, so to take until it was
IEnumerable newSomethings = somethings.TakeWhile(s => s != stop).Union(new List(){stop});
and for skip until
IEnumerable newSomethings = somethings.SkipWhile(s => s != stop).Skip(1);
There is also Take method, which takes some int of first results.