6

これは、jqGridのJson応答を作成するためのコードであり、セルメンバーを定義するための新しいキーワードに対して次のメッセージを受け取ります。「暗黙的に型指定された配列に最適な型が見つかりません」。

var resRows = results.Select(record => 
            new 
            {
                id = record.Reference,
                cell = **new** []
                {
                    record.Reference,
                    record.TradeDate.ToShortDateString(),
                    record.Currency1,
                    record.Currency2,
                    record.Notional.ToString(),
                    record.EffectiveDate.ToShortDateString(),
                    record.Quote.ToString()                        
                }
            }).ToArray();

私はここで何が間違っているのですか?

4

4 に答える 4

8

ReferenceCurrency1およびが文字列であると仮定するとCurrency2、文字列配列として宣言するだけです。

var resRows = results.Select(record => 

    new 
    {
        id = record.Reference,
        cell = new string []
        {
            record.Reference,
            record.TradeDate.ToShortDateString(),
            record.Currency1,
            record.Currency2,
            record.Notional.ToString(),
            record.EffectiveDate.ToShortDateString(),
            record.Quote.ToString()                        
        }
    }).ToArray();
于 2012-06-28T13:13:19.587 に答える
1

(コードのように)jqGridのデータを準備する場合は、独自のjsonReaderを定義し、セル配列をスキップできます(http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieveing_data):

jsonReader: {
        root: "rows",
        page: "page",
        total: "total",
        records: "records",
        repeatitems: false,
        userdata: "userdata"
    },

次に、次のようなものがあります。

var result = new
{
    total = (int)count / grid.PageSize),
    page = grid.PageIndex,
    records = count,
    rows = results.Select(record => 
                    select new
                    {
                        Reference = record.Reference,
                        TradeDate = record.TradeDate,
                        ..
                     }).ToArray()
}
于 2013-09-08T10:59:17.500 に答える
0

私はこれと同じ問題を抱えていて、配列内のすべてのデータ項目が同じ型(文字列の例)である場合、型が推測され、コンパイラはnew[]について文句を言わなかったことがわかりました。

于 2013-04-21T18:16:05.920 に答える
0

コレクションのメンバーが関数である場合でも、コンパイラエラーが発生します。コレクションに関数が1つしかない場合でも!

var bads = new []  // COMPILER ERROR
{
    Foo
};

var goods = new Action[]  // NO COMPILER ERROR
{
    Foo
};

//...
public void Foo() { }
于 2017-07-07T03:42:03.447 に答える