30 Stimmen

Sammlung von Objekten zu einer kommagetrennten Zeichenkette zusammenfügen

An vielen Stellen in unserem Code haben wir Sammlungen von Objekten, aus denen wir eine kommagetrennte Liste erstellen müssen. Der Typ der Sammlung variiert: Es kann eine DataTable sein, aus der wir eine bestimmte Spalte benötigen, oder eine List<Customer>, usw.

Jetzt durchlaufen wir die Sammlung in einer Schleife und verwenden z. B. die String-Verkettung:

string text = "";
string separator = "";
foreach (DataRow row in table.Rows)
{
    text += separator + row["title"];
    separator = ", ";
}

Gibt es dafür ein besseres Muster? Idealerweise möchte ich einen Ansatz, den wir wiederverwenden können, indem wir einfach eine Funktion senden, um das richtige Feld/Eigenschaft/Spalte von jedem Objekt zu erhalten.

0voto

toddmo Punkte 18450

Hier ist meine Lieblingsantwort auf diese Frage, und korrigiert Convert zu ConvertAll:

string text = string.Join(", ", Array.ConvertAll(table.Rows.ToArray(), i => i["title"]));

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X