我正在编写一个C#
应用程序,该应用程序在string
内容中附加,插入,替换和查找string
内容。名为editObjects
的多个对象正在对所调用的string
内容执行这些操作。
我目前正在将StringBuilder
对象传递给每个editObject
对象,然后每个editObject
都会对StringBuilder
对象执行操作。
这个问题分为两部分:
我是否正确地说StringBuilder
是在string
上执行多项操作的最有效方式?
我在2013年发现了这篇文章:Fastest search method in StringBuilder,想知道是否有一些已知代码可以更有效地找到{{1}中string
的索引}}?
StringBuilder
答案 0 :(得分:1)
=AND($L2<10, $L2>3)
更快for most string
manipulations - 这并不意味着它是所有 多项操作的最佳 在StringBuilder
上完成。
在您的情况下,您愿意在string
内找到string
,这需要您执行以下两项操作之一:
在 O(n)处进行标准搜索,迭代整个StringBuilder
,这可以通过非常优化的方式完成,就像您在问题中发布的代码一样。
对StringBuilder
的每次添加和删除数据进行索引chars
或strings
。请注意,建立索引意味着您需要对StringBuilder
中添加或删除的每个string
进行分析,这会为每个 操作操作带来一点开销
您需要判断应用程序的功能更多以及哪些内容会更多地影响您的应用程序 - StringBuilder
搜索而不是 O(n)
或 O(log(n))
操作而非 O(n + m)
操作。 (其中O(n)
是每次插入/删除的开销除以平均插入/删除m
长度)
基本索引图示:
string
索引/最大3 chars
/等......)。