是否有LINQ方式将对象的通用列表转换为相同类型的X by Y矩阵?

| 我有一个通用的对象列表,例如:“ 0”,并希望将其转换为我可以在MVC视图上使用的对象。 形式(基本示例):
<% foreach (var row in PhotoList) { %>

// Render Matrix (using photo properties)
<tr>
    <% foreach(photo in row) { %>
    <td><%=photo.Name%></td>
    <% } %>
</tr>

<% } %>
我曾经想过使用
List<List<Photo>>()
之类的方法手动执行此操作,但是使用LINQ是否有一种巧妙的方法?提供列矩阵显示的列数,行数和页数,或其他更好的主意。     
已邀请:
给定所需的列数
x
,您可以使用
GroupBy()
创建矩阵:
photos.Select( (photo, index) => new { Index = index, Photo = photo })
      .GroupBy( n=> n.Index / x)
      .Select( g => g.Select( p=> p.Photo).ToList())
      .ToList();
结果是每个内部列表中有
x
张照片的
List<List<Photo>>
。然后,您应该只能够使用两个foreach循环来呈现它们(如您的示例所示)。     

要回复问题请先登录注册