【发布时间】:2013-09-09 08:15:20
【问题描述】:
为 jqGrid 准备数据我得到一个意外的子网格单元格数组。简化后的代码如下:
var result = new
{
total = 1,
page = 1,
records = qstList.Count(),
rows = qstList.Select(( c, i ) => new
{
Id = c.QuestionId,
Text = c.Text,
Type = c.Type,
Points = c.Points,
Ordinal = c.Ordinal,
subgrid = new
{
subtotal = 1,
subpage = 1,
cell = qstList.Where(
q => q.QuestionId == c.QuestionId).Select(
q => q.Answers).Select((d, j) => new
{
Id = d.Select(a => a.AnswerId),
Text = d.Select(a => a.Text),
Correctness = d.Select(a => a.Correctness),
Ordinal = d.Select(a => a.Ordinal)
}).ToArray()
}
}).ToArray()
};
行很好,但子网格的单元格数组是奇数。我期待的是:
{[Id, Text, Correctness, Ordinal], ..., [Id, Text, Correctness, Ordinal]}
但事实证明:
{[Id, Id, ...], ..., [Ordinal, Ordinal, ...]}
如何获得预期的“布局”。感谢您的帮助!
【问题讨论】:
-
我可以通过添加 .First() 来获得预期的“布局”。所以 Id = d.Select(a => a.AnswerId).First()。仍然是为什么我需要它用于单元格而不是行的问题。
-
对于单元格,您有 IEnumerable
> - 双序列。 -
试试
...q => q.Answers).SelectMany((d, j) => d.Select(a => new { Id = a.AnswerId, Text = a.Text, ... })).ToArray()