Не разбивается строка на слова
Есть строка, получаемая из листбокса. Примерно выглядит так: "Аммиак, Валентность: 123, ЭлФормула: 456" Мне нужно вывести в текстбоксы "Аммиак", "123", "456". Первое значение "Аммиак" выводит верно, а в остальных случаях выводит: "123, Э" и ": 123,". Помогите, я вообще не понимаю, что делаю не так. Код:
{
string chimchange = listBox1.SelectedItem.ToString();
string namekolvo, valkolvo, elfromula, mas, zar;
int namec, valc, elc, masc, zarc = 0;
namekolvo = chimchange.Substring(0, chimchange.IndexOf(','));
textBox1.Text = namekolvo;
namec = namekolvo.Length;
namec += 15; //Считаем длину хим.элемента и прибавляем количество символов, которые не хотим выводить, чтобы следующую строку выбирать с этого индекса
valkolvo = chimchange.Substring(namec, chimchange.IndexOf(","));
textBox3.Text = valkolvo;
valc = valkolvo.Length;
valc += 13;
elfromula = chimchange.Substring(valc, chimchange.IndexOf(','));
textBox4.Text = elfromula;
elc = elfromula.Length;
elc += 10;
}
Ответы (1 шт):
Автор решения: Andrew
→ Ссылка
var neededValues = listBox1.SelectedItem
.ToString()
.Split(",")
.Select( a => a.Replace("Валентность: ","").Replace("ЭлФормула: ","") )
.ToArray();
соответственно получаем
//neededValues[0] == "Аммиак"
//neededValues[1] == "123"
//neededValues[2] == "456"