A simple code snippet is as follows:
public static void Main()
{
string str = "IsRecorded<code>0</code>";
str = str.TrimEnd("<code>0</code>".ToCharArray());
Console.WriteLine(str);
}
The output string that I get is IsRecor. Why does the TrimEnd function strips of ded from the string when it is supposed to strip only <code>0</code>. Also if I reduce the str to IsRec then it gives IsR as output. Why is this happening?
The parameter for
TrimEndspecifies the set of characters to be trimmed. It's not meant to be a suffix to be trimmed.So you're saying you want to trim any character in the set
{ '<', 'c', 'o', 'd', 'e', '>', '0', '/' }. The letters "ded" are all in that set, so they're being trimmed.If you want to remove a suffix, don't use
TrimEnd. Use something like this:(The string comparison part is important to avoid "interesting" culture-specific effects in some cases. It basically does the simplest match possible.)