用于创建表结果的 Lambda 表达式
我有一个数据列表,想要在 GUI (HTML) 中显示为表格。
我想创建一个 lambda 表达式,以便将包含 100 个项目的列表分为 20 行,每行 5 个项目。我可以创建一个简洁的 lambda 表达式来执行此操作吗?
这就是我想到的(是的,5 是一个神奇的数字,它是每行的项目数):
bool isCreateNewRow = true;
var aggregate = Model.Aggregate(new Collection<ICollection<Album>>(),
(tableCollection, album) =>
{
if (isCreateNewRow)
{
tableCollection.Add(new Collection<Album>());
isCreateNewRow = false;
}
tableCollection.Last().Add(album);
if(tableCollection.Last().Count() >= 5)
{
isCreateNewRow = true;
}
return tableCollection;
});
是否有更短的方法来创建二维数据结构(IEnumerables 的 IEnumerables)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
会容易得多
a) 创建您的(一维)结果集
b) 使用 1 或 2 个 for 循环以表格形式处理(呈现)这些结果。
还因为这两个步骤在逻辑上属于解决方案的不同层。
It would be so much easier to
a) create your (1D) resultset
b) use 1 or 2
for
loops to process (present) those results in table form.Also because those 2 steps would logically belong to different layers of a solution.
此时,
table
是一个IEnumerable>
。要将其转换为 HTML,请尝试以下操作:
At this point,
table
is anIEnumerable<IEnumerable<string>>
.To turn it into HTML, try this: