cliftonm / morelinq

Automatically exported from code.google.com/p/morelinq
Apache License 2.0
1 stars 0 forks source link

FirstOrFallback and LastOrFallback #67

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
Just ran into a situation where FirstOrFallback would have been nice to have. I 
have a list of ranges specified by an editor of the website. The user enters a 
number on the site and I need to find the correct range. I have no control over 
the editor and the way he defines the ranges so there is a possiblity that 
ranges overlap or that the number entered by the user falls outside the ranges. 
So something like this would do it:

var rangeWithLargestCeiling = ranges.MaxBy(x=>x.Ceiling).Single();

var range = ranges
    .Where(x => IsInRange(number,x))
    .FirstOrFallback(() => rangeWithLargestCeiling);

This will handle both the overlapping issue (where there is more than one range 
where the number is in range) and the fallback.

Original issue reported on code.google.com by hammerskov on 7 Jun 2011 at 7:05