Hier ist der Code:
namespace TrimTest
{
class Program
{
static void Main(string[] args)
{
string ToTrim = "PRN.NUL";
Console.WriteLine(ToTrim);
string Trimmed = ToTrim.TrimStart("PRN.".ToCharArray());
Console.WriteLine(Trimmed);
ToTrim = "PRN.AUX";
Console.WriteLine(ToTrim);
Trimmed = ToTrim.TrimStart("PRN.".ToCharArray());
Console.WriteLine(Trimmed);
ToTrim = "AUX.NUL";
Console.WriteLine(ToTrim);
Trimmed = ToTrim.TrimStart("AUX.".ToCharArray());
Console.WriteLine(Trimmed);
}
}
}
Die Ausgabe sieht folgendermaßen aus:
PRN.NUL
UL
PRN.AUX
AUX
AUX.NUL
NUL
Wie Sie sehen können, hat TrimStart das N von NUL entfernt. Bei anderen Zeichenketten ist das nicht der Fall, auch wenn sie mit PRN beginnen.
Ich habe es mit .NET Framework 3.5 und 4.0 versucht und die Ergebnisse sind die gleichen. Gibt es eine Erklärung für die Ursache dieses Verhaltens?