如何在c#中创建字符串列表
本文关键字:创建 字符串 列表 | 更新日期: 2023-09-27 18:05:07
我正在从文件中读取行。我想把这些行放到一个字符串列表中,然后处理它们。我需要某种类型的列表,我可以使用。add(line)添加到列表中。
定义列表的最好方法是什么?一旦数据在列表中,逐行迭代它的最佳方法是什么?
谢谢
使用通用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方法和for
或foreach
迭代器
可以这样做
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);
}