显示以逗号分隔的值列表,不带尾随逗号

时间:2010-03-10 19:55:12

标签: html asp.net-mvc arrays linq-to-sql

我有一个使用LinqToSql的ASP.Net-MVC应用程序。我有一个subcontracts表,一个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 个答案:

答案 0 :(得分:3)

这样做:

<%= Html.Encode(string.Join(", ",
item.ServiceLineNames.Select(x=>x.service_line_name).ToArray())) %>

答案 1 :(得分:0)

在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)) %>

也许这个提示不是这个上下文中的最佳选择,但是当你拥有键值对的集合或者你需要一个由多个属性组成的逗号分隔的描述列表时它会简化很多