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>
}
我有一个包含 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>
}