gpt4 book ai didi

c# - C# 中更快的字符串比较

转载 作者:行者123 更新时间:2023-11-30 14:37:00 24 4
gpt4 key购买 nike

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

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

最佳答案

首先,从 me.Key.ToString() 中删除 ToString()

接下来,使用序号字符串比较(前提是这不影响正确性):

line.StartsWith(me.Key, StringComparison.Ordinal);

这是有益的,因为标准字符串比较遵循各种 Unicode 规则关于什么是相等的。例如,规范化和非规范化序列必须被视为相等。 Ordinal 只是比较原始字符数据,忽略 Unicode 相等性规则。关于此 here 有更多详细信息,例如,或 here (它声称它更快但没有引用任何数字)。

最后,剖析代码。你会感到惊讶,但大多数时候,缓慢的部分根本不是你想象的那样。例如,它可能是您向字典中添加内容的部分。

关于c# - C# 中更快的字符串比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9846980/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com