Skip to content

Instantly share code, notes, and snippets.

@deepumi
Created March 29, 2018 13:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save deepumi/aea8df48ebea7359fb5a1838cf300b94 to your computer and use it in GitHub Desktop.
Save deepumi/aea8df48ebea7359fb5a1838cf300b94 to your computer and use it in GitHub Desktop.
Strip Html Markup Tags
private static string StripMarkupTags(string source)
{
if (source == null) return string.Empty;
var length = source.Length;
var array = new ArrayBuilder(length);
var markup = false;
for (var i = 0; i < length; i++)
{
switch (source[i])
{
case '<':
markup = true;
continue;
case '>':
markup = false;
continue;
}
if (markup) continue;
array.Add(source[i]);
}
return array.ToString();
}
internal struct ArrayBuilder
{
private readonly char[] _array;
private int _index;
internal ArrayBuilder(int capacity)
{
_array = new char[capacity];
_index = 0;
}
internal void Add(char item) => _array[_index++] = item;
public override string ToString() => new string(_array, 0, _index);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment