C#:将变量插入文本文件

C#:将变量插入文本文件,c#,string,text-files,C#,String,Text Files,小结:我想在文本文件中插入变量。我试着四处张望,结果一无所获。也许我用的关键词不对。我知道在字符串中插入变量,很简单: string str1 = "hello {0}"; string str2 = "world"; string final = string.Format(str1, str2); //Output should be "hello world" 遵循同样的概念,我创建了一个str1文本文件,将该文本文件加载到一个字符串变量中,然后重复上述过程 str1.txt: hell

小结:我想在文本文件中插入变量。我试着四处张望,结果一无所获。也许我用的关键词不对。我知道在字符串中插入变量,很简单:

string str1 = "hello {0}";
string str2 = "world";
string final = string.Format(str1, str2); //Output should be "hello world"
遵循同样的概念,我创建了一个str1文本文件,将该文本文件加载到一个字符串变量中,然后重复上述过程

str1.txt:

hello {0}
代码:

现在,我在调用string.format时遇到了“输入字符串的格式不正确”错误,我不太清楚原因


编辑:我想我没有提供足够的信息。很抱歉我试图插入变量的文本文件是一个具有{0},{1}。。。在不同点插入。

我在我的机器上运行了您的代码示例,它按照您的期望工作。我建议您查看str1.txt文件的内容,并确认路径正确解析。如果这些都不起作用,请查看文件的编码

还要注意文件中的零散
{
}
字符。通过将它们加倍或将代码替换为

string str1 = "hello {0}";
string str2 = "world";
string final = str1.replace("{0}", str2); //Output should be "hello world"

ReadAllText()
可能会给您一个字符串文本,因此
{0}
实际上是
\{0\}
,不会按预期运行
string.Format()
is会引发异常,因为第一个字符串没有放置第二个参数的有效位置。

请确保str1中有占位符标记。它需要一个
{0}
来知道在哪里将str2插入str1。

调试并检查
str1
Hmm的值。我已经完成了一个Console.WriteLine来打印变量,并且它正确地打印出来。但是文本文件相对较大,我需要插入多个变量。您知道文本文件中的多行或多个变量是否会影响输出吗?多行应该可以。只需注意文件中的零散
{
}
字符。通过将它们加倍来逃避它们。哦,这可能是问题所在。我正在尝试为一个类创建一个生成器。你是说类函数和变量的括号会弄乱变量的插入方式?是的,这肯定是问题所在。最简单的解决方案可能是执行string.replace(“{0}”,str2)
string str1 = "hello {0}";
string str2 = "world";
string final = str1.replace("{0}", str2); //Output should be "hello world"