首页 / 教程列表 / LINQ教程 / LINQ操作符之ThenBy

LINQ操作符之ThenBy

1280 更新于: 2021-11-16 读完约需 5 分钟

LINQ排序操作符:ThenBy和ThenByDescending

在.NET的LINQ操作符中,ThenByThenByDescending是对集合进行多字段排序的操作符。

OrderBy()方法根据指定的字段按升序对集合进行排序。在OrderBy之后使用ThenBy()方法对另一个字段上的集合按升序排序。LINQ首先根据OrderBy方法指定的主字段对集合进行排序,然后根据ThenBy方法指定的次字段对结果集合进行升序排序。

类似地,使用ThenByDescending()方法对集合进行次字段的降序排序。

注:ThenByThenByDescending是适用于LINQ方法语法。

以下是ThenByThenByDescending方法语法实现的对集合进行不同字段排序示例代码:

public class MyProgram
{
    static void Main(string[] args)
    {
        var orders = FakeData.Orders;

        // LINQ排序--方法语法

        // 1.先按来源升序,再按价格升序
        Console.WriteLine("**************先按来源升序,再按价格升序**************");
        var result1 = orders
            .OrderBy(x => x.Source)
            .ThenBy(x => x.Price);
        foreach (var order in result1)
        {
            Console.WriteLine($"{order.Id},{order.Customer},{order.Price}");
        }

        // 2.先按来源升序,再按价格降序
        Console.WriteLine("**************先按来源升序,再按价格降序**************");
        var result2 = orders
            .OrderBy(x => x.Source)
            .ThenByDescending(x => x.Price);
        foreach (var order in result2)
        {
            Console.WriteLine($"{order.Id},{order.Customer},{order.Price}");
        }

        Console.ReadKey();
    }
}

运行结果为:

**************先按来源升序,再按价格升序**************
2,James,2699
1,Rector,3699
4,Steven,5699
6,Rector,5699
3,Chris,1999
5,Jo,2569
**************先按来源升序,再按价格降序**************
4,Steven,5699
6,Rector,5699
1,Rector,3699
2,James,2699
5,Jo,2569
3,Chris,1999

注:在LINQ方法语法中,对多字段排序需要使用ThenBy(升序)或者ThenByDescending(降序)关键字实现。

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

本文永久链接码友网 » LINQ教程 » LINQ操作符之ThenBy 分享:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册