加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 在列表对象中排序

发布时间:2020-12-15 17:46:05 所属栏目:百科 来源:网络整理
导读:我从数据库Sytem.Collections.generic.IList获取并通过searchText进行过滤: String searchText="E";var query = something().List();query = query.Where(x = !string.IsNullOrEmpty(x.Name) x.Name.ContainsInsensitive(searchText)).ToList();result = qu
我从数据库Sytem.Collections.generic.IList获取并通过searchText进行过滤:
String searchText="E";
var query = something().List();
query = query.Where(x => !string.IsNullOrEmpty(x.Name) &&
x.Name.ContainsInsensitive(searchText)).ToList();
result = query.Select().ToList();

现在我希望结果按名称列排序.首先,所有的值都以searchText开始,然后是包含searchText的所有值.

如果我写这个:

result = result.OrderBy(x => x.Name).ToList();

我得到结果按Name排序,例如:

1. "A name"    
2. "B name"
3. "E name"
4. "F name"

所有这些都包含e名称.我想我的类型是:

1. "E name"    
2. "A name"
3. "B name"
4. "F name"

我的OrderBy表达式应该改变什么?

解决方法

用OrderBy和ThenBy链接在一起2个订单
.OrderBy(x => x.Name.StartsWith(searchText) ? 0 : 1)
.ThenBy(x => x.Name)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读