如何在VB.Net中加入名称列表

时间:2012-11-07 15:05:21

标签: vb.net

这必须是一个简单的问题,但我无法弄清楚如何创建一个由逗号分隔的名称列表,而不会在末尾添加逗号。

所以这是我的代码......

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

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

James Smith,Chris Williams,Zoey Babcock,

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

由于

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

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

3 个答案:

答案 0 :(得分: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)

答案 1 :(得分: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 

答案 2 :(得分:1)

当LINQ和Join可用时,它是最好的答案,但是否则你应该使用StringBuilder,然后最简单的方法就是保留你的代码,最后一行是:< / p>

If userList.Length > 0 Then userList.Length -= ", ".Length
Return userList.ToString