【发布时间】:2021-02-02 13:57:34
【问题描述】:
我似乎无法弄清楚如何将项目添加到 ImmutableList 内的 ImmutableDictionary。
我有以下变量:
ImmutableDictionary<string, ImmutableList<string>> _attributes = ImmutableDictionary<string, ImmutableList<string>>.Empty;
我试图在列表中添加一个值:
string[] attribute = line.Split(':');
if (!_attributes.ContainsKey(attribute[0]))
_attributes = _attributes.Add(attribute[0], ImmutableList<string>.Empty);
if (attribute.Length == 2)
_attributes[attribute[0]] = _attributes[attribute[0]].Add(attribute[1]);
但是,我收到一条错误消息,指出 ImmutableList 没有设置器。如何在不重建整个字典的情况下替换字典中的列表?
【问题讨论】:
-
坦率地说,目前还不清楚您想要实现什么,但您知道ImmutableDictionary<TKey, TValue>.Builder 类和ToImmutableDictionary 方法吗?这些让您可以构建集合,然后使其不可变。
-
这让我的代码更有效率......我会调查的。谢谢。
标签: c# .net .net-5 c#-8.0 immutable-collections