public static int IndexOf(string chars,string str) {
for (int i = 0; i < str.Length; i++)
{
if (str[i] != chars[0]) continue;
if (i + (chars.Length ) > str.Length)
return -1;
if (str.Substring(i, chars.Length) == chars) return i;
}
return -1;
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
for (int i = 0; i < 200000; i++)
IndexOf("abcsdas", "bcbabcbsbssadasdasdasdabcdabcbabcbsbssadasdasdasdabcdabcbabcbsbssadasdasdasdabcdabcbabcbsbssadasdasdasdabcdabcbabcbsbssadasdasdasdabcdabcbabcbsbssadasdasdasdabcdabcbabcbsbssadasdasdasdabcda");
sw.Stop();
Console.WriteLine(sw.ElapsedMilliseconds);
sw = new Stopwatch();
sw.Start();
for (int i = 0; i < 200000; i++)
"bcbabcbsbssadasdasdasdabcdabcbabcbsbssadasdasdasdabcdabcbabcbsbssadasdasdasdabcdabcbabcbsbssadasdasdasdabcdabcbabcbsbssadasdasdasdabcdabcbabcbsbssadasdasdasdabcdabcbabcbsbssadasdasdasdabcda".IndexOf("abcsdas");
sw.Stop();
Console.WriteLine(sw.ElapsedMilliseconds);
Console.Read();
}
这个方法对重复比较多的字符串自然是表现很差的