2011-12-23 5 views
4

У меня есть проблема вставки строки элементов в массиве строк ... Например, у меня есть три назначения линия A:массива строк в C#

a = b 
b = c 
c = e 

Тогда я хочу, чтобы вставить эти шесть переменных в string[] переменная.

Я использую следующий код, но этот код вставляет только последние переменные назначения (c, e).

for (int i = 0; i < S; i++) // S = 3 number of assignment line 
{ 
    variables = assigmnent_lines[i].Split('='); 
} 

ответ

6
List<string> this_is_a_list_of_strings = new List<string>(); 
foreach (string line in assignment_lines) 
{ 
    this_is_a_list_of_strings.AddRange(line.Split('=')); 
} 
string[] strArray = this_is_a_list_of_strings.ToArray(); 
+0

Спасибо! Work Fine –

+0

«chars» - обманчивое имя для списка строк :) –

+0

Спасибо, я отредактировал свой оригинальный ответ. Я не хочу путать людей, интересующихся программированием :) –

0

Вы уничтожив свойство переменных на каждом проходе. Было бы проще использовать свойство коллекции:

List<string> variables = new List<string>(); 

foreach (string sLine in assignment_lines) 
{ 
    variables.AddRange(sLine.Split('=')); 
} 

// If you need an array, you can then use variables.ToArray, I believe. 
+0

да, я получаю массив! спасибо за ур обратной связи –

0

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

String[] variables = new String[S * 2]; 
for (int i = 0; i < S; i++) { 
    // you should verify there is an = for assuming the split made two parts 
    String[] parts = assignment_lines[i].Split('='); 
    variables[i*2] = parts[0]; 
    variables[i*2+1] = parts[1]; 
} 

Простейшее альтернативой было бы использовать List<String> и добавить строки, как вы идете динамически.

+0

Хорошо! Thankx для вашего FeedBack –

+0

Это работает с использованием простого 'String []', но, как указывали другие ответы, 'List ' намного проще, и на самом деле я рекомендую его больше. Это просто показать, что это можно сделать с помощью массивов. –

Смежные вопросы