Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#使用占位符运行文本文件,并用用户输入替换占位符_C# - Fatal编程技术网

C#使用占位符运行文本文件,并用用户输入替换占位符

C#使用占位符运行文本文件,并用用户输入替换占位符,c#,C#,所以我的文本文件会有这样的内容:“嗨,我的名字是[0],我在[1]…”等等,随着数字的增加。在占位符处,我想用用户输入替换占位符 我已经看了前面的问题,但我找不到一个能有效集成用户输入的问题 迄今为止的代码- string input = File.ReadAllText(openFileDialog.FileName); textBox1.Text = input; string result = Regex.Replace(input, "[0-9]", Console.ReadLine()

所以我的文本文件会有这样的内容:“嗨,我的名字是[0],我在[1]…”等等,随着数字的增加。在占位符处,我想用用户输入替换占位符

我已经看了前面的问题,但我找不到一个能有效集成用户输入的问题

迄今为止的代码-

string input = File.ReadAllText(openFileDialog.FileName);
textBox1.Text = input;
string result = Regex.Replace(input, "[0-9]", Console.ReadLine());
string result2 = result.Replace("[", string.Empty).Replace("]", string.Empty);
textBox2.Text = result2;

由于
Console.ReadLine()
part中的错误,当我尝试加载文本文件时,它崩溃。我假设我需要一个循环来遍历文本文件中的文本,以找到每个占位符并请求用户输入,但我不确定如何解决这个问题

告诉我进展如何

string input = File.ReadAllText(openFileDialog.FileName);
//Hi, my name is {0} and I study at {1}...
textBox1.Text = input;
//Get your name and school here
var name = "";
var school = ""
textBox2.Text = string.Format(input, name, school);

我认为这种方法应该对你有所帮助:

public static string AdjustString(string str, List<string> userInput)
{
    int i = 0;
    foreach (var input in userInput)
    {
        var searchedSubstring = $"[{i}]";
        str = str.Replace(searchedSubstring, input);
        i++;
    }
    return str;
}

static void UsgeExample()
{
    var newString = AdjustString("[0][1][2]123[3]",
        new List<string> {"A", "B", "C", "D"});
}
publicstaticstringadjuststring(stringstr,List userInput)
{
int i=0;
foreach(userInput中的var输入)
{
var searchedSubstring=$“[{i}]”;
str=str.Replace(searchedSubstring,输入);
i++;
}
返回str;
}
静态void UsgeExample()
{
var newString=AdjustString(“[0][1][2]123[3]”,
新名单{“A”、“B”、“C”、“D”});
}
newString=“ABC123D”


此外,您还可以尝试使用键为“[0]”或“[1]”等的字典,以及您希望看到的值,而不是这些键。

您看过字符串格式吗?您是否预先知道文件的内容,或者它是动态的?