这必须是一个简单的问题,但我无法弄清楚如何创建一个由逗号分隔的名称列表,而不会在末尾添加逗号。
所以这是我的代码......
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)
答案 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