Есть ли поддержка LINQ для проверки, отсортирована ли Ienumerable ? У меня есть перечисление, которое я хочу проверить, сортируется в неразрывающемся порядке, но я не могу найти нативную поддержку для этого в C#.public static bool IsSorted(this IEnumerable collection) where T : IComparable
{
Contract.Requires(collection != null);
using (var enumerator = collection.GetEnumerator())
{
if (enumerator.MoveNext())
{
var previous = enumerator.Current;
while (enumerator.MoveNext())
{
var current = enumerator.Current;
if (previous.CompareTo(current) > 0)
return false;
previous = current;
}
}
}
return true;
}
< /code>
и один с использованием icomparer < /code> объект: < /p>
public static bool IsSorted(this IEnumerable collection, IComparer comparer)
{
Contract.Requires(collection != null);
using (var enumerator = collection.GetEnumerator())
{
if (enumerator.MoveNext())
{
var previous = enumerator.Current;
while (enumerator.MoveNext())
{
var current = enumerator.Current;
if (comparer.Compare(previous, current) > 0)
return false;
previous = current;
}
}
}
return true;
}
Подробнее здесь: https://stackoverflow.com/questions/197 ... -is-sorted