bool IsSorted (Comparison<T> comparison)
returns true if a sequence is sorted
Source
public static bool IsSorted<T> (this IEnumerable<T> @this, Comparison<T> comparison = null)
{
if (comparison == null)
comparison = Comparer<T>.Default.Compare;
using (IEnumerator<T> e = @this.GetEnumerator ())
{
if (!e.MoveNext ())
return true;
T prev = e.Current;
while (e.MoveNext ())
{
T current = e.Current;
if (comparison (prev, current) > 0)
return false;
prev = current;
}
}
return true;
}
Example
Console.WriteLine (Enumerable.Range (0, 10000).IsSorted ());
Author: Piers Haken
Submitted on: 30 okt. 2010
Language: C#
Type: System.Collections.Generic.IEnumerable<T>
Views: 5026