C#中的字符串比较更快

3 c# string performance

我有一个比较两个文件的程序.我运行了visual studio分析,发现我的比较时间很长.比较这两个字符串有更快的方法吗?(我不能使用并行foreach,因为它可能会导致错误.)现在我正在使用并发字典,但我对其他选项持开放态度.:)

var metapath = new ConcurrentDictionary<string, string>();
foreach(var me in metapath)
{
 if (line.StartsWith(me.Key.ToString()))
 {...}
}
Run Code Online (Sandbox Code Playgroud)

Rom*_*kov 5

首先,掉落ToString()me.Key.ToString().

接下来,使用序数字符串比较(假设这不影响正确性):

line.StartsWith(me.Key, StringComparison.Ordinal);
Run Code Online (Sandbox Code Playgroud)

这是有益的,因为标准字符串比较遵循各种相同的Unicode规则.例如,标准化和非标准化序列必须被视为相等.Ordinal只是比较原始字符数据,忽略Unicode相等规则.有这方面的更多细节在这里,例如,或在这里(号称它的速度更快,但没有任何引用的数字).

最后,描述代码.你会感到惊讶,但大多数时候,缓慢的部分完全不是你想象的那样.例如,它可能是您向字典添加内容的部分.