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

LINQJoinが利用可能な場合は LINQ が最適な回答ですが、それ以外の場合は使用する必要がありStringBuilder、次の最終行でコードをそのままにしておくのが最も簡単です。

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