首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据参数进行c# List<>排序和分组?

如何根据参数进行c# List<>排序和分组?
EN

Stack Overflow用户
提问于 2013-12-03 15:40:43
回答 1查看 839关注 0票数 1

我有一个类和它的列表

代码语言:javascript
复制
 abc cs = new abc();
 List<abc> Lst_CS = new List<abc>();

并通过HidenField在foreach循环中设置了一些值。

代码语言:javascript
复制
 foreach (blah blah)
        {
 cs = new abc{
                    No = VKNT,
                    GuidID=hdnGuidID.Value.ToString(),
                    RecID=hdnRecID.Value.ToString(),
                    Date=HdnDate.Value.ToString()                    
                    };
                    Lst_CS.Add(cs);
}

最后,我得到了一个List_CS,由Lst_CS按照Date这样的方式订购;

代码语言:javascript
复制
 IEnumerable<abc> query = Lst_CS.OrderBy(l => l.Date).ToList(); 

但另外,我想根据No进行分组。

简单地说,我想按Date订购,然后按NoLst_CS上订购,我能做什么呢?谢谢你的回答

EN

回答 1

Stack Overflow用户

发布于 2013-12-03 15:44:32

你只需做排序,然后分组,就像这样:

代码语言:javascript
复制
Lst_CS.OrderBy(l => l.Date)
      .GroupBy(l => l.No)
      .ToList(); 

每个组中的每个项目列表都将按日期进行排序。当按日期对整个列表进行排序时,分组将按照找到它们的顺序排列。

另外,您的ForEach可以在一个Linq语句中完成,然后与排序和分组相结合:

代码语言:javascript
复制
var query = blah.Select(b => new abc{
                        No = VKNT,
                        GuidID=hdnGuidID.Value.ToString(),
                        RecID=hdnRecID.Value.ToString(),
                        Date=HdnDate.Value.ToString()                    
                        })
                 .OrderBy(l => l.Date)
                 .GroupBy(l => l.No)
                 .ToList();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20355403

复制
相关文章

相似问题

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