You can use as many parameters as you want to.
class Program
{
static void Main(string[] args)
{
ExtraString myObject = new ExtraString();
string myString = @"The file %1 cannot be deleted with the current user %2. The file %1 is blocked by another user, please try again later";
Console.WriteLine(myObject.StrBuild(myString, new string[]{"test.txt", "John Citizen"}));
}
}
class ExtraString
{
public string StrBuild(string stringToBuild, string[] parameters)
{
StringBuilder objBuilder = new StringBuilder(stringToBuild);
for (int i=0;i<parameters.Length;i++)
{
objBuilder.Replace(@"%"+(i+1).ToString(), parameters[i]);
}
return objBuilder.ToString();
}
}