Home > Software engineering >  Is there a way to replace the arguments in a string multiple times?
Is there a way to replace the arguments in a string multiple times?

Time:12-21

I'm declaring a string at initialisation as follows

string a = string.Format("Hello {0}", "World.");

Is there a way to subsequently replace the zeroth argument for something else?

If there's no obvious solution, does anybody know of a better way to address the issue. For context, at initialisation I create a number of strings. The text needs to be updated as the program proceeds. I could create a structure comprising an array of strings and an array of objects and then build the final string as required, but this seems ugly, particularly as each instance could have a different number of arguments.

For example,

public class TextThingy
{
   List<String> strings;
   List<String> arguments;

   ...

   public string ToString()
   {
      return strings[0]   arguments [0]   strings [1] ...
   }

I've tried this, but to no avail.

string b = string.Format(a, "Universe.");

I guess that the argument {0} once populated is then baked into the string that one time.

CodePudding user response:

You could move the format string to a variable like this? Would that work? If not, please add some more info for us.

string fmt = "Hello {0}";

string a = string.Format(fmt, "World.");

string b = string.Format(fmt, "Universe.");

CodePudding user response:

try string replace, like ...

StringBuilder sb = new StringBuilder("11223344");

string myString =
    sb
      .Replace("1", string.Empty)
      .Replace("2", string.Empty)
      .Replace("3", string.Empty)
      .ToString();
  • Related