Как реализовать словарь utf8 ReadOnlySpan <byte>? - PullRequest
1 голос
/ 05 января 2020

Мне нужно реализовать обобщенный словарь 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>
...