1

这必须是一个简单的问题,但我无法弄清楚如何创建一个用逗号分隔的名称列表,而最后没有尾随逗号。

所以这是我的代码...

    For Each u In users
        userList.Append(u.FirstName)
        userList.Append(" ")
        userList.Append(u.LastName)
        userList.Append(", ")
    Next

这会创建一个列表,但它总是看起来像这样:

詹姆斯·史密斯、克里斯·威廉姆斯、佐伊·巴布科克、

如何生成最后没有额外逗号的列表?

谢谢

感谢所有帮助,这是工作代码:

    Dim fullNames = (users.Select(Function(u) u.FirstName + " " + u.LastName))
    Dim userList As String = String.Join(", ", fullNames)
4

3 回答 3

3

您可以使用LINQ将每个用户投射到全名集合中,然后使用String.Join()您选择的分隔符将它们连接起来。

List(Of String) fullNames = From u _
                            In users _
                            Select (u.FirstName + " " + u.LastName)
String userList = String.Join(", ", fullNames)

您也可以像这样表达 LINQ 查询。它与上述相同:

List(Of String) fullNames = _
                users.Select(Function(u) u.FirstName + " " + u.LastName)
String userList = String.Join(", ", fullNames)
于 2012-11-07T15:08:37.217 回答
2
For i as integer = 0 to users.Count - 1
    userList.Append(String.Format("{0} {1}", users(i).FirstName, users(i).LastName))
    If (i + 1) < users.Count - 1
        userList.Append(", ")
    End If
Next 
于 2012-11-07T15:08:32.007 回答
1

LINQ 并且Join是可用时的最佳答案,否则您应该使用StringBuilder它,然后最简单的方法是让您的代码保持原样,最后一行:

If userList.Length > 0 Then userList.Length -= ", ".Length
Return userList.ToString
于 2012-11-08T05:25:29.113 回答