StringBuilder.Insert Method (Int32, String, Int32)

July 28, 2014

Inserts one or more copies of a specified string into this instance at the specified character position.

Namespace:  System.Text
Assembly:  mscorlib (in mscorlib.dll)

public StringBuilder Insert(
	int index,
	string value,
	int count
)

Parameters

index
Type: System.Int32
The position in this instance where insertion begins.
value
Type: System.String
The string to insert.
count
Type: System.Int32
The number of times to insert value.

Return Value

Type: System.Text.StringBuilder
A reference to this instance after insertion has completed.

ExceptionCondition
ArgumentOutOfRangeException

index is less than zero or greater than the current length of this instance.

-or-

count is less than zero.

OutOfMemoryException

The current length of this StringBuilder object plus the length of value times count exceeds the maximum capacity of this instance.

Existing characters are shifted to make room for the new text. The capacity of this instance is adjusted as needed.

This StringBuilder object is not changed if value is null, value is not null but its length is zero, or count is zero.

The following code example demonstrates the Insert method.


using System;
using System.Text;

class Example
{
   //                         index: 012345
   static string initialValue = "--[]--";
   static StringBuilder sb;

   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      string xyz = "xyz";
      char[] abc = { 'a', 'b', 'c' };
      char star = '*';
      Object obj = 0;

      bool xBool = true;
      byte xByte = 1;
      short xInt16 = 2;
      int xInt32 = 3;
      long xInt64 = 4;
      Decimal xDecimal = 5;
      float xSingle = 6.6F;
      double xDouble = 7.7;

      // The following types are not CLS-compliant.
      ushort xUInt16 = 8;
      uint xUInt32 = 9;
      ulong xUInt64 = 10;
      sbyte xSByte = -11;
      //
      outputBlock.Text += "StringBuilder.Insert method" + "\n";
      sb = new StringBuilder(initialValue);

      sb.Insert(3, xyz, 2);
      Show(outputBlock, 1, sb);

      sb.Insert(3, xyz);
      Show(outputBlock, 2, sb);

      sb.Insert(3, star.ToString());
      Show(outputBlock, 3, sb);

      sb.Insert(3, abc);
      Show(outputBlock, 4, sb);

      sb.Insert(3, abc, 1, 2);
      Show(outputBlock, 5, sb);

      sb.Insert(3, xBool.ToString());     // True
      Show(outputBlock, 6, sb);

      sb.Insert(3, obj.ToString());       // 0
      Show(outputBlock, 7, sb);

      sb.Insert(3, xByte.ToString());     // 1
      Show(outputBlock, 8, sb);

      sb.Insert(3, xInt16.ToString());    // 2
      Show(outputBlock, 9, sb);

      sb.Insert(3, xInt32.ToString());    // 3
      Show(outputBlock, 10, sb);

      sb.Insert(3, xInt64.ToString());    // 4
      Show(outputBlock, 11, sb);

      sb.Insert(3, xDecimal.ToString());  // 5
      Show(outputBlock, 12, sb);

      sb.Insert(3, xSingle.ToString());   // 6.6
      Show(outputBlock, 13, sb);

      sb.Insert(3, xDouble.ToString());   // 7.7
      Show(outputBlock, 14, sb);

      // The following Insert methods are not CLS-compliant.
      sb.Insert(3, xUInt16.ToString());   // 8
      Show(outputBlock, 15, sb);

      sb.Insert(3, xUInt32.ToString());   // 9
      Show(outputBlock, 16, sb);

      sb.Insert(3, xUInt64.ToString());   // 10
      Show(outputBlock, 17, sb);

      sb.Insert(3, xSByte.ToString());    // -11
      Show(outputBlock, 18, sb);
      //
   }

   public static void Show(System.Windows.Controls.TextBlock outputBlock, int overloadNumber, StringBuilder sbs)
   {
      outputBlock.Text += String.Format("{0,2:G} = {1}", overloadNumber, sbs.ToString()) + "\n";
      sb = new StringBuilder(initialValue);
   }
}
/*
This example produces the following results:

StringBuilder.Insert method
 1 = --[xyzxyz]--
 2 = --[xyz]--
 3 = --[*]--
 4 = --[abc]--
 5 = --[bc]--
 6 = --[True]--
 7 = --[0]--
 8 = --[1]--
 9 = --[2]--
10 = --[3]--
11 = --[4]--
12 = --[5]--
13 = --[6.6]--
14 = --[7.7]--
15 = --[8]--
16 = --[9]--
17 = --[10]--
18 = --[-11]--

*/


Windows Phone OS

Supported in: 8.1, 8.0, 7.1, 7.0

Windows Phone

Show:
© 2014 Microsoft