C # Загрузить элементы из файла и разбить на массив - PullRequest
0 голосов
/ 16 сентября 2011

Привет, ребята, я пытаюсь загрузить содержимое моего файла "item.ids", который в настоящее время содержит это:

1:Stone
2:Grass
3:Dirt

Я хочу прочитать каждую строку в файле и разбить его на ":».Я использую следующий код:

    foreach(String line in File.ReadAllLines("item.ids")) {
        items = line.Split(':');
    }

    foreach (String part in items)
    {
        addToList(specs, part);
    }



}


public void addToArray(Array array, int index, String s)
{
    try
    {

        array.SetValue(s, index);
    }
    catch (Exception ex)
    {
        addToList(specs, ex.ToString());
    }
}

public void addToList(ListBox listbox, String s)
{
    listbox.Items.Add(s);
}

Это работает, но работает только в последней строке, поэтому выводит его примерно так:

3
dirt

Если бы вы могли помочь мне вместе с моимкод это было бы очень полезно.

Ответы [ 3 ]

4 голосов
/ 16 сентября 2011

Вам необходимо заполнять список после каждого чтения.

foreach(String line in File.ReadAllLines("item.ids")) 
{
    items = line.Split(':');

    foreach (String part in items)
    {
        addToList(specs, part);
    }
}

... в противном случае по умолчанию вы добавляете только последний элемент.

1 голос
/ 16 сентября 2011

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

foreach(String line in File.ReadAllLines("item.ids")) 
{         
     foreach (String part in line.Split(':'))
     {         
          addToList(specs, part);     
     } 
}
0 голосов
/ 16 сентября 2011

Вы закрыли свой цикл на ранней стадии, поэтому элементы будут содержать только последнюю итерацию

...