Is it possible to use LINQ to check if all numbers in a list are increasing monotonically?

前端 未结 8 2649
旧巷少年郎
旧巷少年郎 2021-02-20 17:14

I\'m interested if there is a way, in LINQ, to check if all numbers in a list are increasing monotonically?

Example

List l         


        
8条回答
  •  日久生厌
    2021-02-20 18:20

    Consider an implementation like the following, which enumerates the given IEnumerable only once. Enumerating can have side-effects, and callers typically expect a single pass-through if that's possible.

    public static bool IsIncreasingMonotonically(
        this IEnumerable _this)
        where T : IComparable
    {
        using (var e = _this.GetEnumerator())
        {
            if (!e.MoveNext())
                return true;
            T prev = e.Current;
            while (e.MoveNext())
            {
                if (prev.CompareTo(e.Current) > 0)
                    return false;
                prev = e.Current;
            }
            return true;
        }
    }
    

提交回复
热议问题