C#从文件加载项目并拆分为数组

时间:2011-09-16 02:12:21

标签: c# arrays split

我们正在尝试加载我的文件“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 个答案:

答案 0 :(得分:4)

每次阅读后都需要填写清单。

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

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

...否则你只是默认添加最后一项。

答案 1 :(得分:1)

在第一个循环中,每次迭代时都设置项目字段,因此当您退出循环时,它将被设置为最后一个值。你可能想要改成这样的东西:

foreach(String line in File.ReadAllLines("item.ids")) 
{         
     foreach (String part in line.Split(':'))
     {         
          addToList(specs, part);     
     } 
}

答案 2 :(得分:0)

您已将循环关闭到早期,因此项目仅包含最后一次迭代

将您的代码更改为:

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

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