Skip to content

Instantly share code, notes, and snippets.

@dauger
Created January 19, 2011 21:37
Show Gist options
  • Save dauger/786916 to your computer and use it in GitHub Desktop.
Save dauger/786916 to your computer and use it in GitHub Desktop.
Extension method to determine if a list is ordered asc
public static class IListOfTExtensions
{
public static bool IsOrdered<T, T2>(this IList<T> @this, Func<T, T2> orderedOnProperty)
where T2 : IComparable<T2>
{
var isLessThanOrEqualTo = true;
for (int i = 1; i < @this.Count; i++)
{
var comparer = Comparer<T2>.Default;
isLessThanOrEqualTo = comparer
.Compare(orderedOnProperty(@this[i - 1]), orderedOnProperty(@this[i])) <= 0;
if (!isLessThanOrEqualTo)
{
break;
}
}
return isLessThanOrEqualTo;
}
}
// usage
// var isOrdered = fooList.IsOrdered(x => x.Bar)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment