将字典转换为哈希表条目

4

我正在尝试使用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++;
  }
2个回答

7
一个HashEntry是不可变的;你需要:
hash[index++] = new HashEntry(item.Key, item.Value);

或者更方便的是:
var fields = dictionary.Select(
    pair => new HashEntry(pair.Key, pair.Value)).ToArray();

出于好奇,这里的Dictionary<TKey,TValue>精确类型是什么?增加一些方便的重载可能是合理的。在另一个方向上已经有一些方便方法,例如ToDictionary(...)ToStringDictionary(...)


它是一个Dictionary<string, string>。 - Justin Homes
希望能够看到这些主要原始类型(如int、guid、double等)的便捷方法。 - Ben

0

这个问题不是在谈论 HashSet<> - Marc Gravell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接