2010-05-10 4 views
0

То, что я пытаюсь сделать, читается в строке заголовка файла в combobox. Вот мой код:C# string to combobox issues

private void button4_Click(object sender, EventArgs e) 
{ 
    string[] startdelim = File.ReadAllLines(textBox1.Text); 
    int counter = 1; 
    foreach (string delim in startdelim) 
    { 
     if (counter == 1) 
     { 
      string removedelim = delim.Replace("\"", ""); 
      string[] lines = removedelim.IndexOf(","); 
      foreach (string line in lines) 
      { 
       comboBox1.Items.Add(line); 
      } 
     } 
     counter++; 
    } 
} 

по какой-то причине он продолжает говорить мне

Ошибка Не удается неявно преобразовать тип 'INT' в 'строку []' в string[] lines = removedelim.IndexOf(",");

ответ

4

IndexOf возвращает первый индекс строки "," в пределах removedelim. Вы ищете Split.

string[] lines = 
    removedelim.Split(new string[] { "," }, StringSplitOptions.None); 

Обратите внимание, что не является экземпляр Split, который принимает один string (поскольку некоторые языки допускают неявное преобразование между string и char[], что сделало бы разрешение перегрузок неоднозначно и не легко исправить), так что вы должны использовать перегрузка, которая принимает массив разделителей и просто предоставляет один.

0

Ну, ошибка довольно проста. IndexOf возвращает целое положение символа, который вы искали. Вам нужно сделать Split вместо IndexOf.

0

String. IndexOf(Char): Сообщает об индексе первого вхождения указанного символа Юникода в этой строке.

sting.IndexOf (char) возвращает int не массив жала.

0

Другие уже заметили ошибку. Все еще есть проблемы с вашим кодом. Все, что вам нужно, это следующие строки кода:

string[] startdelim = File.ReadAllLines(textBox1.Text); 
comboBox1.Items.AddRange(startdelim[0].Replace("\","").Split(",")); 
+0

Хотя это более красноречиво (и, действительно, «лучше»), это не «проблема» с его кодом. –