Собственная поддержка C # для проверки сортировки IEnumerable?

Есть ли поддержка LINQ для проверки, еслиIEnumerable отсортировано? У меня есть перечисление, которое я хочу проверить, отсортировано в нисходящем порядке, но я могуКажется, я не нашел нативной поддержки в C #.

я написал свой собственный метод расширения, используя:IComparables

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;
}

И один с помощьюIComparer объект:

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;
}

Ответы на вопрос(5)

Ваш ответ на вопрос