#c# #arrays #string
#c# #массивы #строка
Вопрос:
Я показываю категории моего i-го продукта в представлении, но я хочу поставить запятые между ними.
Мое мнение
@for (int i = 0; i < Products.Count(); i )
{
<tr>
<td>
<span> @Model.Products[i].ProductName </span>
@foreach (var item in Model.Products[i].ProductCategories)
{
<span>@string.Join(", ", item.Category.CategoryName)</span>
}
</td>
</tr>
Почему String .Соединение не работает, чего мне не хватает
Я хочу это
Компьютер, технология, рабочий стол
Комментарии:
1. ну,
item.Category.CategoryName
это всего лишь один элемент . для объединения вам нужно как минимум два элемента, поэтому запятая может быть промежуточной. вырежьте свой foreach и вместо этого выберите categorynames в одном массиве.2. @FranzGleichmann спасибо, я не знаю, как я это пропустил
Ответ №1:
item.Category.CategoryName
представляет только одно имя категории, поэтому при объединении ,
было добавлено no (запятая). Если вы хотите объединить все категории продуктов, используйте приведенный ниже код
<tr>
<td>
<span> @Model.Products[i].ProductName </span>
<span>@string.Join(", ", Model.Products[i].ProductCategories.Select(p => p.Category.CategoryName))</span>
</td>
</tr>
Приведенный выше код повторит все ProductCategories
и присоединится к тем, которые используют string.Join