В моем коде что-то не так с использованием Split в Winform

#c# #winforms

#c# #winforms

Вопрос:

У меня есть этот код:

 private void Form1_Load(object sender, EventArgs e)
{
    string s="helloamynameisalam";
    string[] arr = s.Split('a');
    foreach (string str in arr)
    {
        textBox1.Text = str   "n";
    }
}
  

Я хочу, чтобы вывод был таким :

 hello  
mynameis  
lam  
  

Но он показывает только «lam» в текстовом поле 1. Я не знаю почему.

Ответ №1:

Ваша ошибка возникает внутри цикла for, где вы устанавливаете свойство text текстового поля на текущий элемент. Конечно, это заканчивается тем, что в вашем текстовом поле отображается только последний элемент массива.

Вы можете использовать string .Join для создания многострочной строки, но не забудьте установить для свойства Multiline текстового поля значение true, чтобы в вашем текстовом поле отображалось несколько строк

 string s="helloamynameisalam";
string[] arr = s.Split('a');
//textBox1.Text = string.Join("rn", arr);
textBox1.Text = string.Join(Environment.NewLine, arr);
  

Вы даже можете обрезать строку из своего кода с помощью простой замены

 t.Text = s.Replace("a", Environment.NewLine);
  

Обратите внимание также, что n одного символа НЕДОСТАТОЧНО для создания новой строки в текстовом поле. Вам также нужно добавить r или улучшить Environment.NewLine

Комментарии:

1. Большое вам спасибо, но это только связывает строку вместе. Вывод такой: hellomynameislam, но он не принимает символ » n». Пожалуйста, помогите мне!!

2. да! Я видел ваше обновление. Это успешно. Большое вам спасибо