Показать список значений, разделенных запятыми без запятой - PullRequest
4 голосов
/ 10 марта 2010

У меня есть приложение ASP.Net-MVC, использующее LinqToSql. У меня есть таблица субконтрактов, таблица service_lines и таблица сопоставлений / ссылок Service_lineToSubcontracts, которая содержит subcontract_id и service_line_id. В представлении субконтракта я хотел бы перечислить соответствующие служебные строки.

Это работает, но с запятой.

<% foreach (var sls in item.Service_lineToSubcontracts)
   { %>
   <%= Html.Encode(sls.service_line.service_line_name+", ") %>
<% } %>

Я думаю, что смогу использовать что-то вроде String.Join(", ", item.Service_lineToSubcontracts.ToArray()), но я не уверен, как получить массив имен service_line_names.

Ответы [ 2 ]

3 голосов
/ 10 марта 2010

Сделайте это:

<%= Html.Encode(string.Join(", ",
item.ServiceLineNames.Select(x=>x.service_line_name).ToArray())) %>
0 голосов
/ 05 декабря 2013

В ответе Keltex вы можете опустить вызов метода ToArray(), поскольку метод String.Join работает с любым IEnumerable<T>.

Подсказка для более краткой и настраиваемой формы - переопределить метод ToString() класса элемента коллекции, в вашем случае это можно сделать так:

public class Service_lineToSubcontract
{
  public Service_line service_line {get; set;}
  ...
  public override string ToString()
  {
    return service_line.service_line_name; // Or whatever you need
  }
}

и затем используйте более краткую форму:

<%= Html.Encode(String.Join(", ", item.Service_lineToSubcontracts)) %>

возможно, этот совет не лучший выбор в этом контексте, но он значительно упрощается, когда у вас есть коллекции пар ключ-значение или вам нужен разделенный запятыми список описаний, составленный из более чем одного свойства

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...