我尝试更改从该函数创建的 array 中的 string
File.ReadAllLines(csspath)
。
我尝试做的是使用Regex.Replace
和将输出分配给我使用的string
(在这种情况下为file
)。 />
在函数中,我得到数组和我想要将字符串更改为的字符串。
问题就是当我使用file.Replace(file, outp);
时,我需要保存新阵列,我不认为我知道如何处理这个问题。
<登记/>
我应该如何处理这个解决方案?
我也认为使用Regex.Match
函数,但我得到匹配而不是替换。
private static void MyFunction(string[] files,string changeto)
{
var outp = "";
foreach (var file in files)
{
if (file.Contains("font-family"))
{
//var match = Regex.Match(file, "'.*';");
outp = Regex.Replace(file, "'.*';", changeto);
file.Replace(file, outp);
}
}
}
答案 0 :(得分:0)
我建议设计更改:让方法返回更改(而不是void
):
private static IEnumerable<string> MyFuction(IEnumerable<string> lines, string changeTo) {
return lines
.Select(line => Regex.Replace(line, "'.*';", changeTo));
}
所以你可以像这样使用它:
// 1. Read lines from the file
// 2. Make required changes
// 3. Organize the final result as an array
string[] data = MyFuction(File.ReadLines(csspath))
.ToArray();
或者你甚至可以摆脱这个方法并拥有可读代码:
string[] data = File
.ReadLines(csspath) // read file
.Select(line => Regex.Replace(line, "'.*';", changeTo)) // make changes
.ToArray(); // materialize as an array