【发布时间】:2012-08-28 23:41:02
【问题描述】:
我有一个名为stb_Swap_Tabu 的StringBuilder 用于存储课程名称,
我正在使用以下方法查找课程:
stb_Swap_Tabu.ToString.Contains("CourseName")
就我而言,性能是最重要的问题。 有没有更快的方法?
【问题讨论】:
-
如果您需要使用
StringBuilder,那么您可能需要在每次要搜索时调用ToString,这在性能方面并不是一个好主意。StringBuilder用于构建字符串;大概如果您正在构建字符串,那么您已经有了组成部分;为什么不直接在这些组成部分中搜索呢? -
StringBuilder可能是最不适合存储可搜索名称列表的数据类型。为什么不改用List<string>,而使用List的Contains方法? -
你有这个字符串实际上是什么的例子吗?你说它存储“Course's Names” - 无论“Course's”实际上是否意味着“Courses”,“Names”都暗示了多个名称 - 所以大概这是一个以某种方式分隔的字符串。在这种情况下,将其切换为 individual 名称中的
List<string>或HashSet<string>会很有意义 -
HashSet用于更大数量的字符串,list用于更小的字符串。 -
我同意这不太可能是这里需要的。尽管如此,还是会在 StringBuilder 中找到一个子字符串。
标签: c# .net vb.net performance stringbuilder