C# source implementation that enhances LINQ to Objects with the method TakeUntil. Returns items from the input sequence until the given predicate returns true when applied to the current source item; that item will be the last returned.
$ dotnet add package MoreLinq.Source.MoreEnumerable.TakeUntilNo README available.