C#文本文件到字符串数组以及如何删除特定的字符串?

问题描述 投票:0回答:1

我需要阅读一个文本文件(10mb),然后转换为.csv。参见下面的代码部分:

string DirPathForm = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);'
string[] lines = File.ReadAllLines(DirPathForm + @"\file.txt");

文本文件的某些部分具有模式。因此,如下所示:

string[] lines1 = lines.Select(x => x.Replace("abc[", "ab,")).ToArray();
Array.Clear(lines, 0, lines.Length);
lines = lines1.Select(x => x.Replace("] CDE  ", ",")).ToArray();

某些部分没有可直接使用替换的模式。问题是如何删除此部分中的字符,数字和空格。请看下面?

string[] lines = {
    "a]  773  b",
    "e] 1597  t",
    "z]    0  c"
};

在下面得到结果:

string[] result = {
    "a,b",
    "e,t",
    "z,c"
};

obs:删除的项目需要替换为“,”。

c# replace delegates text-files file.readalllines
1个回答
0
投票

首先,您不应该使用ReadAllLines,因为它是一个巨大的文件操作。它将所有数据加载到RAM中,这是不正确的。相反,请循环阅读每一行。

第二,您绝对可以使用正则表达式将数据从第一个条件替换为第二个条件。

© www.soinside.com 2019 - 2024. All rights reserved.