Q:

How to check if a IEnumerable is sorted?

How to check if a IEnumerable is sorted?
bool IsSorted<T>(IEnumerable<T> enumerable)
{
   ???
}

A:

One example of such method could be:
static bool IsSorted<T>(IEnumerable<T> enumerable) where T : IComparable<T> {
    T prev = default(T);
    bool prevSet = false;
    foreach (var item in enumerable) {
        if (prevSet && (prev == null || prev.CompareTo(item) > 0))
            return false;
        prev = item;
        prevSet = true;
    }
    return true;
}

Works with most built-in types like numbers or strings, because they implement IComparable.

