Мне нужно реализовать обобщенный словарь c, где ключами являются строки UTF8, представленные структурой ReadOnlySpan<byte>
.
Интерфейс словаря должен быть
interface IUtf8StringDictionary<T>
{
void Add(ReadOnlySpan<byte> key, T value);
bool TryGetValue(ReadOnlySpan<byte> key, out T value);
bool Remove(ReadOnlySpan<byte> key);
bool ContainsKey(ReadOnlySpan<byte> key);
void Clear();
}
Поскольку span структуры могут существовать только в стеке, я не могу использовать стандартную реализацию словаря.
Какую реализацию вы бы предложили, исходя из следующих условий?
- TryGetValue не должен выделять память
- Он должен работать по крайней мере так же быстро, как
Dictionary<string, T>