C# 写一个string对象池
时间: 2023-08-19 13:41:54 浏览: 86
下面是一个简单的 C# 字符串对象池的实现,可供参考:
```csharp
public class StringPool
{
private Dictionary<string, string> _pool = new Dictionary<string, string>();
public string Get(string value)
{
if (_pool.TryGetValue(value, out string pooledValue))
{
return pooledValue;
}
else
{
_pool.Add(value, value);
return value;
}
}
}
```
使用方法如下:
```csharp
StringPool pool = new StringPool();
string s1 = pool.Get("hello");
string s2 = pool.Get("world");
string s3 = pool.Get("hello");
Console.WriteLine(s1 == s3); // true
Console.WriteLine(s1 == s2); // false
```
当调用 `Get` 方法时,如果字符串池中已经存在一个与 `value` 相同的字符串,则直接返回该字符串的引用;否则,创建一个新的字符串对象,并将其添加到字符串池中以便后续重用。
阅读全文