首页 / .NET / 正文

[LINQ].NET/C#程序开发中如何使用LINQ进行多字段(属性)排序?

2968 发布于: 2018-01-29 读完约需2分钟

问题描述

比如当前有如下的实体类:

public class FooBar
{
    public virtual int Id { get; set; }
    public virtual string Foo{ get; set; }
    public virtual string Bar{ get; set; }
}

通过LINQ的查询表达式是可以实现多字段排序,如:

//查询数据列表集合
var foobarList = GetFooBarList();

//查询并排序
var resultSet = from foobars in foobarList
                orderby foobars.Foo, foobars.Bar
                select foobars;

// 迭代查询结果
foreach (var foobar in resultSet)
{
    // 你的代码逻辑
}

LINQLambda表达式中如何对多字段进行排序,如下的伪代码:

var resultSet = foobarList.OrderBy(x => new {x.Foo, x.Bar})
                          .Select(x=>x);

方案一

使用LINQOrderBy,然后ThenBy或者ThenByDescending这样的扩展方法,如下:

foobarList.OrderBy(x => x.Foo).ThenBy( x => x.Bar);

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

上一篇: [LINQ]C#程序开发中如何使用LINQ读取XML文件

下一篇: [LINQ].NET/C#程序开发中如何使用LINQ查询前几条数据记录

本文永久链接码友网 » [LINQ].NET/C#程序开发中如何使用LINQ进行多字段(属性)排序?

分享扩散:

发表评论

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