MVC,在foreach循环中只显示每个不同名称的第一项

MVC, Only show first item for each different Name in foreach loop

我有一个包含 6 个项目(行)的列表。第一列在每行中给出 属性 "Name":


姓名

item1

item1

item1

item2

item2

item2


是否可以使用 foreach 循环只显示每个不同名称的第一项,所以我得到这样的结果:


item1

item2


我试过使用 Model.Take(1),但这只显示了整个列表中的第一项。

我当前的循环是这样的:

foreach (var item in Model)
    {
        <p>@Html.DisplayFor(modelItem => item.Name)</p>
    }

您需要分组:

@{
   var result = Model.GroupBy(x=>x.Name);

}

然后迭代 result 进行渲染。

@foeach(var item in result)
{
  <span>@item.Key</span>
}
@foreach (var item in Model.Distinct(m => m.Name).OrderBy(m => m.Name))
{
    <p>@Html.DisplayFor(modelItem => item.Name)</p>
}