Why is function isprefix faster than Startswith in C#?
Does anyone know why C# (.NET)'s StartsWith function is considerably slower than IsPrefix ? I think it's mostly fetching the thread's current culture. If you change Marc's test to use this form of String.StartsWith : Stopwatch watch = Stopwatch.StartNew(); CultureInfo cc = CultureInfo.CurrentCulture; for (int i = 0; i < LOOP; i++) { if (s1.StartsWith(s2, false, cc)) chk++; } watch.Stop(); Console.WriteLine(watch.ElapsedMilliseconds + "ms; chk: " + chk); it comes a lot closer. If you use s1.StartsWith(s2, StringComparison.Ordinal) it's a lot faster than using CompareInfo.IsPrefix (depending on