我打开一个txt文件并将其写入字符串数组。问题是如何使用字符串数组执行等效的字符串lines.Remove(0,6)
?我知道我必须遍历数组中的每个[],但是我如何得到我想要的结果?
文本文件:
12345; 9/19/2016 something.pdf
我如何获取文件:
string[] lines = File.ReadAllLines(@"\\ecmvmdev21\text.txt");
期望的输出:
9/19/2016 something.pdf
答案 0 :(得分:2)
如果您知道每行开头总会有6个不需要的字符,那么您可以这样做:
lines = lines.Select(x => x.Substring(6)).ToArray();
答案 1 :(得分:2)
如你所说,循环遍历字符串数组,然后在for循环中循环:
lines[i] = lines[i].Substring(6);
答案 2 :(得分:1)
当您使用ReadAllLines
时,您将获得一个数组,其中每个项目代表文件中的一行。
做你想做的事:
.ReadAllText
,然后您会收到一个string
,其中包含所有文字(您可以在其上使用.Remove
)lines[0]
,然后转到.Remove
。请务必检查您的位置0
是否有项目,否则您将收到indexOutOfRangeException
如果您想对所有行执行此操作,则可以使用linq的.Select
:
lines = lines.Select(line => line.Remove(0,6));
答案 3 :(得分:1)
您可以使用LINQ和Select删除每行的前六个字符,例如:
string[] lines = File.ReadAllLines(@"\\ecmvmdev21\text.txt")
.Select(line=>line.Remove(0,6))
.ToArray();
或
string[] lines = File.ReadLines(@"\\ecmvmdev21\text.txt")
.Select(line=>line.Remove(0,6))
.ToArray();
区别在于ReadLines
返回IEnumerable而不是string[]
,这意味着它在执行Select
之前不会加载内存中的所有行。根据需要加载行。这样可以提高内存利用率
答案 4 :(得分:1)
lines[0] = lines[0].substr(6);