En muchos lugares de nuestro código tenemos colecciones de objetos, de los cuales necesitamos crear una lista separada por comas. El tipo de recogida varía: puede ser un DataTable de la que necesitamos una cierta columna, o una lista <cliente>, etc.Unir la colección de objetos en una cadena separada por comas
Ahora bucle a través de la concatenación recopilación y el uso de cuerdas, por ejemplo:
string text = "";
string separator = "";
foreach (DataRow row in table.Rows)
{
text += separator + row["title"];
separator = ", ";
}
¿Hay un mejor patrón para esto? Idealmente, me gustaría un enfoque que pudiéramos reutilizar simplemente enviando una función para obtener el campo/propiedad/columna correcto de cada objeto.
¡Esto hace exactamente lo que yo quería lograr, gracias! Aunque encuentro que las expresiones lambda son más legibles (como en la solución de Matt). –
Acepto que las expresiones lambda son mucho más legibles, pero hasta ahora solo he usado .NET 2.0. Espero aprenderlos pronto –
Es posible que desee cambiar el separador para que sea una cadena en lugar de una char, pero no olvide cambiar la llamada "sb.Remove" para que sea "sb.Remove (sb.Length - separator.Length, separator.Length) " –