如何在c#中创建字符串列表

本文关键字:创建 字符串 列表 | 更新日期: 2023-09-27 18:05:07

我正在从文件中读取行。我想把这些行放到一个字符串列表中,然后处理它们。我需要某种类型的列表,我可以使用。add(line)添加到列表中。

定义列表的最好方法是什么?

一旦数据在列表中,逐行迭代它的最佳方法是什么?

谢谢

如何在c#中创建字符串列表

使用通用List<T>,自带.Add:

List<string> lines = new List<string>(File.ReadAllLines("your file"));
lines.Add("My new line!");

注意System.IO.File静态类上的静态助手方法。我一时想不起来了,但我想它返回一个字符串数组,你可以把它输入到列表的构造函数中。

要进行迭代,请使用foreach构造:

foreach (string line in lines)
{
    Console.WriteLine(line);
}

注意,当列表上有一个开放迭代器时(例如,使用foreach),您不能修改该列表:

foreach (string line in lines)
{
    Console.WriteLine(line);
    lines.Add("Attempting a new line"); // throws an exception.
    lines.Remove("Attempting a new line"); // throws an exception.
}

如果您希望能够同时修改和迭代,请使用for循环,但是要小心

List<string> list = new List<string>(); // list creation
List<string> list2 = new List<string>(File.ReadAllLines("filename")) // instant reading
list.Add("Hello world"); // adding a string
foreach (string item in list) // iterating over a list
    Console.WriteLine(item);

使用文件。ReadAllLines方法和forforeach迭代器

可以这样做

string path = "MyFile.txt";
string[] lines = File.ReadAllLines(path);
List<string> listOfLines = new List<string>();
foreach(string str in lines)
{
    listOfLines.Add(str);
}

这个例子基本上是从http://msdn.microsoft.com/en-us/library/s2tte0y1.aspx#Y1113

如果文件很小,可以使用其他人建议的ReadAllLines()方法。但是,对于大文件,这将表现得不太好。

或者,你可以这样做:

class Program
{
    static void Main(string[] args)
    {
        var myList = new List<string>;
        using (var sw = new StreamReader(@"c:'foo.txt"))
        {
            while (true)
            {
                string line = sw.ReadLine();
                if (line == null)
                    break;
                myList.Add(line);
            }
        }
    }
}

你可以只用一行来完成:

foreach (string line in Files.ReadAllLines("file"))
{
    // ...
}

您可以使用File。ReadAllLines读取整个文件,然后使用foreach循环处理它们。例如:

string[] lines=File.ReadAllLines("somefile.txt");
foreach(string line in lines)
{
  Process(line);
}