3 回答
TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個(gè)贊
出現(xiàn)問(wèn)題是因?yàn)镕ile.ReadAllLines()返回字符串?dāng)?shù)組( ),您可以使用方法string[]將其轉(zhuǎn)換為:List<string>ToList()
string[] lines = File.ReadAllLines(@"C:\Users\thoma\source\repos\NewShoreApp\NewShoreApp\Data\CONTENIDO.txt");
List<string> list = lines.ToList();
如果要讀取同一文件夾中的多個(gè)文件并將所有內(nèi)容添加到字符串列表中,請(qǐng)使用Directory.GetFiles()orDirectory.EnumerateFiles()并在使用之前迭代每個(gè)文件路徑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());
}
在多線程環(huán)境中,您應(yīng)該考慮使用Parallel.ForEach與上述類似的設(shè)置foreach循環(huán):
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貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超3個(gè)贊
并行讀取多個(gè) txt 文件的最佳方法是使用 ThreadPool。
ThreadPool.QueueUserWorkItem(ReadFile, path);
ReadFile 方法在這里
public static void ReadFile(Object path)
{
string content = File.ReadAllLines(@path)
// do what you need
}
TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊
如果問(wèn)題是這一行:
string data= File.ReadAllLines(line); //'Cannot implicitly convert type string[] to string'
變量lines 是每行作為字符串的數(shù)組,您已經(jīng)在上面調(diào)用過(guò)。
如果您想要行列表,只需將行數(shù)組轉(zhuǎn)換為列表:
var list = new List<string>(data);
- 3 回答
- 0 關(guān)注
- 252 瀏覽
添加回答
舉報(bào)
