1

私は自分の答えの端にいると感じています!

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........10/16/13
  • 991........10/17/13
  • 994........10/16/13
  • 994........10/17/13
  • 992........10/16/13
  • 992........10/17/13

予想された結果:

  • 店舗番号.....日付
  • 991........10/16/13
  • 991........10/17/13
  • 992........10/16/13
  • 992........10/17/13
  • 994........10/16/13
  • 994........10/17/13

linq の経験者の 1 人が、私が見逃していることや何がうまくいかないのかを指摘してもらえますか? お時間をいただきありがとうございます。

4

2 に答える 2

2

その出力では、グループ化がまったく必要ないと思います:

var sortedFiles = ownedFileInfo.OrderBy(x => x.reportStore)
                               .ThenBy(x => x.reportDate)
                               .ToList();
于 2013-05-21T21:17:32.533 に答える
1

必要なのは

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

それ以外の

ownedFileInfo.GroupBy(x => x.reportStore).Select....
于 2013-05-21T21:15:13.807 に答える