gpt4 book ai didi

c# - 如何在文本文件中的某些行之前只写一个#?

转载 作者:太空狗 更新时间:2023-10-29 23:06:28 24 4
gpt4 key购买 nike

我有一个这样的文本文件:

Rows
...
product.people
product.people_good
product.people_bad
product.boy
#product.me

...
Rows

我想在 product. 之前加上 # 并且文件是:

Rows
...
#product.people
#product.people_good
#product.people_bad
#product.boy
#product.me
...
Rows

为此我使用下一个代码:

string installerfilename = pathTemp + fileArr1;
string installertext = File.ReadAllText(installerfilename);
var linInst = File.ReadLines(pathTemp + fileArr1).ToArray();
foreach (var txt in linInst)
{
if (txt.Contains("#product="))
{
installertext = installertext.Replace("#product=", "product=");
}
else if (txt.Contains("product.") && (!txt.StartsWith("#")))
{
installertext = installertext.Replace(txt, "#" + txt);
}
File.WriteAllText(installerfilename, installertext);
}

但是这段代码做了接下来的事情:

Rows
...
#product.people
##product.people_good
##product.people_bad
#product.boy
#product.me
...
Rows

有人能给我解释一下吗?我怎么能在那几行之前只写一个#?

最佳答案

目前您正在读取同一个文本文件两次 - 一次作为单独的行,一次作为整个文件。然后,您将重写文件的次数与行数一样多。这都坏了。我怀疑你只是想:

// Note name changes to satisfy .NET conventions
// Note: If pathTemp is a directory, you should use Path.Combine
string installerFileName = pathTemp + fileArr1;
var installerLines = File.ReadLines(installerFileName)
.Select(line => line.StartsWith("product=") ? "#" + line : line)
.ToList();
File.WriteAllLines(installerFileName, installerLines);

如果您写入的文件与您正在读取的文件不同,则不需要 ToList 调用。

关于c# - 如何在文本文件中的某些行之前只写一个#?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33036300/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com