2012-06-28 3 views
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(); 

私はここで間違っていますか?

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(); 

答えて

8

文字列)型が推測され、コンパイラはnew []について文句を言わなかった。

+2

@D Stanley、私はそれをやった!実際には、これらが文字列でない場合は、単に 'cell = new object [] {...}'を使うことができます。 –

0

私はこの同じ問題を持っていたし、配列内のすべてのデータ項目は同じタイプ(例であった場合ことがわかった:ちょうど文字列配列として宣言し、ReferenceCurrency1Currency2が文字列であると仮定すると、

1

あなたはjqGrid(あなたのコードのように)のためにデータを準備する場合は、あなたがあなた自身のjsonReaderを定義し、ちょうどセルアレイ(http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_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() 
} 
+0

「新規選択」を「新規」に置き換えます。 – Andrej

0

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

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

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

//... 
public void Foo() { } 
関連する問題