首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用StartWith对自定义项进行排序

如何使用StartWith对自定义项进行排序
EN

Stack Overflow用户
提问于 2015-03-23 23:00:18
回答 4查看 95关注 0票数 2

我有以下代码。这基于使用临时容器来选择特定项,然后将它们添加到列表的末尾。

代码语言:javascript
运行
复制
 var allRoles = roles.Table
      .AsEnumerable().Select(p => new FirmRole
      {
          Code = p.Field<string>("RoleName"),
          Name = p.Field<string>("RoleName")
      })ToList();

        var formRoles = allRoles.Where(p => p.Code.StartsWith("f")).ToList();
        var otherRoles = allRoles.Except(formRoles).ToList();

        otherRoles.AddRange(formRoles);

缩短代码并去掉临时列表是不是更好的方法?

就像这样

代码语言:javascript
运行
复制
 var allRoles = roles.Table
      .AsEnumerable().Select(p => new FirmRole
      {
          Code = p.Field<string>("RoleName"),
          Name = p.Field<string>("RoleName")
      }).OrderBy(x=>x.Code.StartsWith("f")).ThenBy(a=>a);
EN

Stack Overflow用户

发布于 2015-03-24 00:16:59

您应该使用GroupBy和ToLookup来获得您想要的结果。

代码语言:javascript
运行
复制
        var allRoles = roles.Table
            .AsEnumerable().Select(p => new FirmRole
            {
                Code = p.Field<string>("RoleName"),
                Name = p.Field<string>("RoleName")
            }).GroupBy(x => x.StartsWith("f")).ToLookup(g => g.Key);;

        var formRoles = allRoles[true].ToList();
        var otherRoles = allRoles[false].ToList();
票数 0
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29213517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档