2 votes

Comment transformer une chaîne de caractères séparée par des virgules en une chaîne de caractères séparée par des sauts de ligne ?

J'ai une chaîne de caractères séparée par des virgules. Comment puis-je la convertir en format séparé par un saut de ligne ? Ma chaîne ressemble à ceci :

red,yellow,green,orange,pink,black,white

Et doit être formaté de cette façon :

red
yellow
green
orange
pink
black
white

Voici mon code :

public static string getcolours()
{
    List<string> colours = new List<string>();
    DBClass db = new DBClass();
    DataTable allcolours = new DataTable();
    allcolours = db.GetTableSP("kt_getcolors");
    for (int i = 0; i < allcolours.Rows.Count; i++)
    {
        string s = allcolours.Rows[i].ItemArray[0].ToString();
        string missingpath = "images/color/" + s + ".jpg";
        if (!FileExists(missingpath))
        {
            colours.Add(s);

        }
    }
    string res = string.Join(", ", colours);

    using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"F:\test.txt", true))
    {

        file.WriteLine(res);
    }
    return res;
}

8voto

TRMI Points 153
res = res.Replace(',','\n');

Cela devrait fonctionner.

4voto

Habib Points 93087

Vous pouvez essayer :

string colours = "red,yellow,green,orange,pink,black,white";
string res = string.Join(Environment.NewLine, colours.Split(','));

Ou une version beaucoup plus simple serait :

string res2 = colours.Replace(",", Environment.NewLine);

1voto

Ruben-J Points 1860

Ne pas faire de jointure de chaîne, juste écrire les couleurs et le retour suivant avec jointure sur \n

public static string getcolours()
{
    List<string> colours = new List<string>();
    DBClass db = new DBClass();
    DataTable allcolours = new DataTable();
    allcolours = db.GetTableSP("kt_getcolors");
    for (int i = 0; i < allcolours.Rows.Count; i++)
    {
        string s = allcolours.Rows[i].ItemArray[0].ToString();
        string missingpath = "images/color/" + s + ".jpg";
        if (!FileExists(missingpath))
        {
            colours.Add(s);
        }
    }
    using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"F:\test.txt", true))
    {
        foreach(string color in colours)
        {
            file.WriteLine(color);
        }
    }
    return string.Join("\n", colours);;
}

0voto

Jaroslaw Waliszko Points 6618
var s = "red,yellow,green,orange,pink,black,white";
var r = string.Join(Environment.NewLine, s.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries));

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X