¿Existe una forma estándar de crear un valor CSV a partir de una cadena []?

Quiero crear una cadena CSV a partir de los elementos en un cuadro de texto enriquecido. Sé que tiene que haber una manera mejor que la que improvisé:

string CSVDuckbills = GetLinesAsCSV(richTextBoxDuckbills.Lines);
...
private string GetLinesAsCSV(string[] DuckbillLines)
{
    string DuckbillCSV = string.Empty;
    foreach (string item in DuckbillLines)
    {
        DuckbillCSV += string.Format("{0},", item);
    }
    return DuckbillCSV;
}

Por un lado, tendré que quitar una coma superflua al final.

preguntado el 18 de septiembre de 12 a las 17:09

más allá de eso, también está utilizando la concatenación de cadenas que sería terriblemente lenta dependiendo de la cantidad de elementos. Para referencia futura, al crear cadenas dinámicas a partir de colecciones como esta, debe usar el StringBuilder. -

1 Respuestas

Puede usar el string.Join para mas simple:

string DuckbillCSV = string.Join(",", DuckbillLines);

Respondido el 18 de Septiembre de 12 a las 17:09

¿Qué pasa con la nueva línea al final de cada línea? - fábula

@fableal: el código de muestra no te permite usar fácilmente "\n" - charlar

"\n" es un salto de línea de Unix/Linux. Mac usa \r y Windows \r\n. Environment.NewLine podría ser una mejor manera de obtener el salto de línea del sistema... a menos que la aplicación solo se ejecute en *nix. - fábula

No quiero los saltos de línea. Solo quiero un valor como: "Gallagher, Santana, Betts, Clapton, Brown, Gibbons" - B. Clay Shannon-B. Cuervo Cuervo

No olvide verificar si hay saltos de línea o comas dentro de los campos y eliminarlos o comillas de escape del campo. Si escribe escape del campo, entonces también necesita escapar de las comillas dentro del campo. - Servir

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.