除非我缺少一个明显的内置方法,否则获取字符串中第n次出现的字符串的最快方法是什么?

我意识到我可以通过在循环的每次迭代中更新它的开始索引来循环IndexOf方法.但这样做对我来说似乎是浪费.

推荐答案

这基本上就是您需要做的--或者至少,这是最简单的解决方案.您所"浪费"的只是n次方法调用的成本--如果您仔细想想,您实际上不会判断任何一种情况两次.(IndexOf将在找到匹配项后立即返回,您将从它停止的位置继续前进.)

.net相关问答推荐

仅在有换行符时捕获分隔符之间的所有文本

无法使用 int.Parse 从字符串转换值

如何在不违反继承安全规则的情况下在 .NET 4+ 中实现 ISerializable?

更新 .NET Web 服务以使用 TLS 1.2

无法加载文件或程序集'System.ComponentModel.Annotations,版本 = 4.1.0.0

检测到包降级警告(dotnet core,vs 2017)

与 ASP.NET Core 相关的 ConfigureAwait(false)?

在 web api 控制器(.net 核心)中使用 async/await 或任务

如何卸载“Microsoft .NET Core 1.0.0 RC2 - VS 2015 Tooling Preview 1”?

Resharper Ctrl-T 映射丢失

如何在插值字符串中使用三元运算符?

nameof 的目的是什么?

使用 C# 设置全局热键

运行多个异步任务并等待它们全部完成

Dapper 是否支持 SQL 2008 表值参数?

用 double 替换 int 时的 Visual Studio 长编译

NuGetPackageImportStamp 有什么用?

为什么 HttpClient BaseAddress 不起作用?

C# 属性实际上是方法吗?

如何防止任务的同步延续?