我有一个IEnumerable<DateTime>var,我需要验证它是按升序还是降序排序.
我可以使用for循环来做到这一点,但有没有办法使用LINQ表达式?
var orderedByAsc = input.OrderBy(d => d);
if (input.SequenceEqual(orderedByAsc))
{
Console.WriteLine("Ordered by Asc");
return;
}
var orderedByDsc = input.OrderByDescending(d => d);
if (input.SequenceEqual(orderedByDsc))
{
Console.WriteLine("Ordered by Dsc");
return;
}
Console.WriteLine("not sorted");
Run Code Online (Sandbox Code Playgroud)
上升:
myEnumerable.Zip(myEnumerable.Skip(1), (curr, next) => curr <= next).All(x => x);
Run Code Online (Sandbox Code Playgroud)
降:
myEnumerable.Zip(myEnumerable.Skip(1), (curr, next) => curr >= next).All(x => x);
Run Code Online (Sandbox Code Playgroud)
但是使用循环,LINQ并不是一切的神奇解决方案.
| 归档时间: |
|
| 查看次数: |
6413 次 |
| 最近记录: |