如何检查IEnumerable< T>排序? [英] How to check if a IEnumerable<T> is sorted?

查看:139
本文介绍了如何检查IEnumerable< T>排序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何检查IEnumerable是否排序?

How to check if a IEnumerable is sorted?

bool IsSorted<T>(IEnumerable<T> enumerable)
{
   ???
}


推荐答案

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

适用于大多数内置类型,如数字或字符串,因为它们实现了IComparable 。

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

这篇关于如何检查IEnumerable&lt; T&gt;排序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆