将字典转换为 HashEntry

Convert Dictionary to HashEntry

我正在尝试使用 hashSet 方法,它需要 HashEntry[] 数组。

HashSet(RedisKey key, HashEntry[] hashFields, CommandFlags flags = CommandFlags.None);

我正在尝试这样做,但这显然行不通...

我有字典值

  HashEntry[] hash = new HashEntry[value.Count]();
  int index = 0;
  foreach (var item in value)
  {
        hash[index].Name = item.Key;
        hash[index].Value = item.Value;
        index++;
  }

var result = new HashSet(dictionarySet.Values);

另见下文link:

C#: Dictionary values to hashset conversion

一个HashEntry是不可变的;你需要:

hash[index++] = new HashEntry(item.Key, item.Value);

或者更方便:

var fields = dictionary.Select(
    pair => new HashEntry(pair.Key, pair.Value)).ToArray();

出于好奇,这里 Dictionary<TKey,TValue>exact 类型是什么?为了方便起见,添加一些重载可能是合理的。反方向已经有一些方便的方法,比如ToDictionary(...)ToStringDictionary(...).