簡體   English   中英

Linq Sorted Groupby和Orderby字段

[英]Linq Sorted Groupby and Orderby fields

我覺得我只是在答案的邊緣!

我有一個自定義fileInfo類與持有者信息,如“報告商店號”,“報告日期”等...

我有一個List<fileInfo> ,我保存所有文件信息。 我試圖通過“報告商店編號”對列表進行分組,並按“報告日期”排序

我想出了以下內容

var results = ownedFileInfo.GroupBy(x => x.reportStore).Select(group=> new { KeyName = group.Key, KeyInfo =  group.OrderBy(x=>x.reportDate).ThenBy(x=>x.reportStore)});

List<fileInfo> sortedFiles = new List<fileInfo>();
                    foreach (var group in results)
                    {

                        foreach (fileInfo fi in group.KeyInfo)
                        {
                            sortedFiles.Add(fi);

                        }
                    }

groupby和orderby功能正在按預期工作。 雖然我希望ThenBy也會對groupby列進行排序:(

結果:

  • 商店#.....日期
  • 991 ........ 13年10月16日
  • 991 ........ 13年10月17日
  • 994 ........ 13年10月16日
  • 994 ........ 13年10月17日
  • 992 ........ 13年10月16日
  • 992 ........ 13年10月17日

預期成績:

  • 商店#.....日期
  • 991 ........ 13年10月16日
  • 991 ........ 13年10月17日
  • 992 ........ 13年10月16日
  • 992 ........ 13年10月17日
  • 994 ........ 13年10月16日
  • 994 ........ 13年10月17日

可以用linq獲得更多經驗之一,請指出我錯過了什么或出了什么問題? 謝謝你的高級時間。

我不認為你需要分組輸出:

var sortedFiles = ownedFileInfo.OrderBy(x => x.reportStore)
                               .ThenBy(x => x.reportDate)
                               .ToList();

我想你需要的是

ownedFileInfo.GroupBy(x => x.reportStore).OrderBy(x=>x.Key).Select....

代替

ownedFileInfo.GroupBy(x => x.reportStore).Select....

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM