Идея для сценария, в котором вам нужно сделать дополнительные «вещи» в цикле foreach, а не просто рендеринг дисплея.
// index.cshtml
@{ var lastPerson = Model.People.LastOrDefault(); }
@foreach (People person in Model.People)
{
var display = person != lastPerson ? $"{person.Name}, " : person.Name;
<a href="@person.Href">@display</a>
}
Или, если вы похожи на меня и хотите сохранить логику сравнения и анализа вне поля зрения, вы можете написать простой метод расширения.
// StringExtensions.cs
public class StringExtensions
{
public static string DisplayAsCommaListItem(
this string str, object currentItem, object lastItem)
{
return currentItem != lastItem ? $"{str}, " : str;
}
}
Тогда код представления становится ..
// index.cshtml
@{ var lastPerson = Model.People.LastOrDefault(); }
@foreach (People person in Model.People)
{
<a href="@person.Href">@person.Name.DisplayAsCommaListItem(person, lastPerson)</a>
}