-1
var results = gridViewDataTable.AsEnumerable()
                    .GroupBy(d => d.Field<string>("String1"))
                    .Select(g => g.OrderByDescending(d => d.Field<string>("String2")).CopyToDataTable();

この LING クエリから DataTable を取得しようとしていますが、エラーが発生します

) expected

誰でも理由がわかりますか?

4

3 に答える 3

1

投稿を編集して読みやすくするつもりでしたが、編集することで、問題がどこにあるかがより明確になることに気付きました。すべての開き括弧には閉じ括弧が必要なので、さまざまな部分を分割し始めると、非常に明確になります。

// Please don't actually format your code this way...
var results = gridViewDataTable.AsEnumerable()
                  .GroupBy(
                      d => d.Field<string>("String1")
                  )
                  .Select(
                      g => g.OrderByDescending (
                          d => d.Field<string>("String2")
                        )
                  ) // Needed to close out the Select()
                  .CopyToDataTable();

// How I would actually format this (makes it a little easier to
// break down a single line):
gridViewDataTable.AsEnumerable()
                 .GroupBy(d => d.Field<string>("String1"))
                 .Select(g => g.OrderByDescending(d => d.Field<string>("String2")))
                 .CopyToDataTable();
于 2013-11-01T15:41:32.370 に答える
1

これにより、テーブルのリストが作成されます。

gridViewDataTable.AsEnumerable()
    .GroupBy(r => r.Field<string>("String1"))
    .Select(g => g.OrderByDescending(r => r.Field<string>("String2"))
                  .CopyToDataTable()); // bracket is missing here

これにより、グループ化および順序付けされた行を持つ単一のデータテーブルが作成されます (ここでも SelectMany を使用する必要があります)。

gridViewDataTable.AsEnumerable()
    .GroupBy(r => r.Field<string>("String1"))
    .SelectMany(g => g.OrderByDescending(r => r.Field<string>("String2"))) //here
    .CopyToDataTable();
于 2013-11-01T15:32:59.577 に答える