LINQ将结果显示为数组

时间:2018-08-21 00:49:38

标签: asp.net linq

我正在使用以下代码联接2个表,并将它们的结果返回到View

var Results = (from post in DbContext.posting_file
                  join reader in DbContext.user_master_postings on post.id equals reader.posting_id
                  join file in DbContext.postings_title on post.id equals file.id
                  orderby reader.date_created descending
                  select new { file.title, reader.date_created, reader.department, reader.user_name }).Take(5).ToArray();

在视图中运行foreach循环时。

@foreach (var item in ViewBag.Results){
    @item
}

我得到以下结果。

{ title = Title 1, date_created = 21/08/2018, department = Audit, user_name = Chetty }
{ title = Title 2, date_created = 21/08/2018, department = Audit, user_name = Pal }
{ title = Title 3, date_created = 21/08/2018, department = Audit, user_name = Chetty }
{ title = Title 4, date_created = 21/08/2018, department = Corporate, user_name = Kau }

我想要的结果是数组格式的,这样我就可以遍历结果并将其填充到表中。我该怎么办?

1 个答案:

答案 0 :(得分:1)

我并不完全是您要问的问题,但是,如果您想填充数组的内容(您在LINQ查询中使用.ToArray()指定的内容),则可以在循环内使用以下点表示法

p.s。您可能想在此表中包含一些标题,但是您明白了。 p.p.s您是否考虑过将此集合合并到视图模型中而不是在视图包中?

@if (ViewBag.Results != null && ViewBag.Results.Count > 0) {
        <table>
        @foreach(var item in ViewBag.Results) {
        <tr>
           <td>@item.title</td>
           <td>@item.date_created</td>
           <td>@item.department</td>
           <td>@item.user_name</td>
       </tr>
   }
      </table>
}