I just stumbled across this - a very useful extension LINQ library called MoreLinq.
The list of extensions that it provides includes some real gems:
MinBy) - scan a sequence and return the item with the highest (or lowest) value as identified by a delegate.
This differs from
Min) by returning the item from the sequence, not the value itself.
ForEach- this exists on
List<T>but isn’t supplied by default.
Pipe- applies a delegate to each item of the sequence, without modifying the sequence