C# StringBuilder如何在append前检查是否有重复
时间: 2024-12-02 19:16:04 浏览: 7
C#中StringBuilder类的使用总结
在C#中,`StringBuilder`是一个用于动态构建字符串的高效数据结构,它支持线程安全的操作。如果你想在向`StringBuilder`添加新字符或字符串之前检查是否已经有重复的内容,你可以先创建一个集合(如HashSet或Dictionary),存储已经添加过的元素。以下是基本步骤:
1. 创建一个`HashSet<char>`或者`HashSet<string>`(如果你只关心字符串的唯一性)。
2. 当需要添加新的内容时,先从集合中检查这个内容是否存在。
3. 如果不存在,再将其添加到`StringBuilder`中,并将内容添加到集合中。
示例代码如下:
```csharp
using System;
using System.Collections.Generic;
public class UniqueStringBuilder
{
private HashSet<string> uniqueStrings;
private StringBuilder stringBuilder;
public UniqueStringBuilder()
{
this.uniqueStrings = new HashSet<string>();
this.stringBuilder = new StringBuilder();
}
public void AppendIfUnique(string content)
{
if (!uniqueStrings.Contains(content))
{
stringBuilder.Append(content);
uniqueStrings.Add(content);
}
}
// 其他方法...
}
// 使用示例
public static void Main()
{
UniqueStringBuilder builder = new UniqueStringBuilder();
builder.AppendIfUnique("Hello"); // 添加第一次
builder.AppendIfUnique("World"); // 添加第二次
// 如果尝试添加已存在的内容
builder.AppendIfUnique("Hello"); // 这里不会添加,因为"Hello"已经在集合中了
}
```
阅读全文