1

我是 C# 和一般编程的新手。我正在尝试读取 txt 文件的内容并将它们加载到arraylist. 我不知道在我的while循环中使用什么条件。

void LoadArrayList()
{
    TextReader tr;
    tr = File.OpenText("C:\\Users\\Maattt\\Documents\\Visual Studio 2010\\Projects\\actor\\actors.txt");

    string Actor;
    while (ActorArrayList != null)
    {
        Actor = tr.ReadLine();
        if (Actor == null)
        {
            break;
        }
        ActorArrayList.Add(Actor);
    }  
}
4

5 回答 5

2
 void LoadArrayList()
{
    TextReader tr;
    tr = File.OpenText("C:\\Users\\Maattt\\Documents\\Visual Studio 2010\\Projects\\actor\\actors.txt");

    string Actor;
    Actor = tr.ReadLine();
    while (Actor != null)
    {
        ActorArrayList.Add(Actor);
        Actor = tr.ReadLine();
    }

}
于 2013-10-21T04:28:43.703 回答
1

只需2 行代码即可完成

string[] Actor = File.ReadAllLines("C:\\Users\\Maattt\\Documents\\Visual Studio 2010\\Projects\\actor\\actors.txt");
ArrayList list = new ArrayList(Actor);
于 2013-10-21T05:13:25.643 回答
0

这是应该的

 void LoadArrayList()
{
    string[] lines = System.IO.File.ReadAllLines(@"C:\Users\Maattt\Documents\Visual Studio 2010\Projects\actor\actors.txt");

   // Display the file contents by using a foreach loop.
   foreach (string Actor in lines)
   {
       ActorArrayList.Add(Actor);
  }
}
于 2013-10-21T04:28:12.630 回答
0

只需像这样重新排列它:

    Actor = tr.ReadLine();
    while (Actor != null)
    {
        ActorArrayList.Add(Actor);
        Actor = tr.ReadLine();
    }
于 2013-10-21T04:28:58.257 回答
0

如果您查看method的文档TextReader.ReadLine,您会看到它返回 a string,或者null如果没有更多行。因此,您可以做的是循环并根据ReadLine方法的结果检查 null。

while(tr.ReadLine() != null)
{
    // We know there are more items to read
}

但是,通过上述方法,您没有捕获ReadLine. 因此,您需要声明一个字符串来捕获结果并在 while 循环中使用:

string line;
while((line = tr.ReadLine()) != null)
{
    ActorArrayList.Add(line);
}

另外,我建议使用通用列表,例如List<T>代替非通用的ArrayList. 使用类似的东西List<T>会给你更多的类型安全,并减少无效分配或强制转换的可能性。

于 2013-10-21T04:30:38.430 回答