5

これは簡単な質問のように思えるかもしれませんが、linqjs 構文に苦労しています。

次の基本的な JSON があるとします。

{
        "DateEvent": "2013-04-23 14:00:00Z",
        "DateRecord": "2013-04-23 14:00:00Z",
        "Amount": -9500,
        "Type": {
            "Description": "Capital"
        },
        "Currency": {
            "ID": "USD",
        }
}

linqjs を使用して各通貨の合計を返すにはどうすればよいですか?

Enumerable.From(data)
    .GroupBy("{ currency: $.Currency.ID }", null, 
        function (key, g) {
            var result = {
                    currency: key.currency,
                    total: g.Sum($.Amount)
                }});

上記のコードは機能しません。

4

4 に答える 4

1

そのようなオブジェクトの配列があると仮定すると、クエリは次のように記述できます。

var query = Enumerable.from(data)
    .groupBy(
        "{ Currency: $.Currency.ID, Type: $.Type.Description }",
        "$.Amount",
        "{ Currency: $.Currency, Type: $.Type, Total: $$.Sum() }"
    )
    .ToArray();

個人的には、ラムダ文字列構文を使用する方が簡潔で好ましいと思います。ラムダと関数を混在させると、より複雑なコードになります。

于 2013-07-24T20:14:20.967 に答える