3 回答
TA贡献1826条经验 获得超6个赞
出现问题是因为File.ReadAllLines()返回字符串数组( ),您可以使用方法string[]将其转换为:List<string>ToList()
string[] lines = File.ReadAllLines(@"C:\Users\thoma\source\repos\NewShoreApp\NewShoreApp\Data\CONTENIDO.txt");
List<string> list = lines.ToList();
如果要读取同一文件夹中的多个文件并将所有内容添加到字符串列表中,请使用Directory.GetFiles()orDirectory.EnumerateFiles()并在使用之前迭代每个文件路径ReadAllLines():
List<string> paths = Directory.EnumerateFiles(@"C:\Users\thoma\source\repos\NewShoreApp\NewShoreApp\Data\", "*.txt").ToList();
foreach (string filePath in paths)
{
string[] lines = File.ReadAllLines(filePath);
list.AddRange(lines.ToList());
}
在多线程环境中,您应该考虑使用Parallel.ForEach与上述类似的设置foreach循环:
List<string> paths = Directory.EnumerateFiles(@"C:\Users\thoma\source\repos\NewShoreApp\NewShoreApp\Data\", "*.txt").ToList();
Parallel.ForEach(paths, current =>
{
string[] lines = File.ReadAllLines(current);
list.AddRange(lines.ToList());
});
TA贡献1818条经验 获得超3个赞
并行读取多个 txt 文件的最佳方法是使用 ThreadPool。
ThreadPool.QueueUserWorkItem(ReadFile, path);
ReadFile 方法在这里
public static void ReadFile(Object path)
{
string content = File.ReadAllLines(@path)
// do what you need
}
TA贡献1809条经验 获得超8个赞
如果问题是这一行:
string data= File.ReadAllLines(line); //'Cannot implicitly convert type string[] to string'
变量lines 是每行作为字符串的数组,您已经在上面调用过。
如果您想要行列表,只需将行数组转换为列表:
var list = new List<string>(data);
- 3 回答
- 0 关注
- 183 浏览
添加回答
举报