这是我为jqGrid创建Json响应的代码,以及用于定义单元成员的 new 关键字,我收到以下消息“找不到隐式类型数组的最佳类型”。
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();
我在这里做错了什么?
答案 0 :(得分:8)
假设Reference
,Currency1
和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();
答案 1 :(得分: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()
}
答案 2 :(得分:0)
我遇到了同样的问题,发现如果数组中的所有数据项都是相同的类型(示例字符串),那么推断出类型并且编译器没有抱怨 new []
答案 3 :(得分:0)
如果集合的成员是函数,它仍然会给编译器错误。即使集合中只有一个函数!
var bads = new [] // COMPILER ERROR
{
Foo
};
var goods = new Action[] // NO COMPILER ERROR
{
Foo
};
//...
public void Foo() { }