Question

After searching the web and reading docs on MSDN, I couldn't find any examples of how to replicate a tab character in C#. I was going to post a question here when I finally figured it out...

I'm sure it is obvious to those fluent in C#, but there were SO many similar questions in various forums, I thought an example was worth posting (for those still learning C# like me). Key points:

  1. use "double-quotes" for a string
  2. use 'single-quotes' for a char
  3. \t in a string is converted to a tab: "John\tSmith"
  4. '\t' by itself is like a tab const

Here is some code to add tabs to the front of an HTML line, and end it with a newline:

public static string FormatHTMLLine(int Indent, string Value)
{
  return new string('\t', Indent) + Value + "\n";
}

You could also use:

string s = new string('\t', Indent);

Is this the most efficient way to replicate tabs in C#? Since I'm not yet 'fluent', I would appreciate any pointers.

Was it helpful?

Solution

Yes, I think this is the best way.

The string constructor you are using constructs a string containing the character you specify as the first argument repeated count times, where count is the second argument.

OTHER TIPS

1) You should cache and reuse results from calling new string('\t', Indent). 2) Try not to generate new string from FormatHTMLLine. For example, you can consider write them to output stream.

void IndentWrite(int indent, string value)
{
    if (indent > 0)
    {
       if (s_TabArray == null)
       {
         s_TabArray = new char[MaxIndent];

         for (int i=0; i<MaxIndent; i++) s_TabArray[i]='\t';
       }

       m_writer.Write(s_TabArray, 0, indent);
    }

    m_writer.Write(value);
    m_writer.Write('\n');
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top