我正在使用ImmutableList,如下所示:
using System.Collections.Immutable;
private ImmutableList<Data> immutableList = ImmutableList.Create<Data>();
// Write Action
Action writeAction = (() =>
{
Data writeData = new Data();
// Fill Data type with valid values
immutableList.Add(writeData);
});
上面的代码未将任何数据添加到不可变列表。它仍然是空的,我无法弄清楚所有数据均有效时的原因。类似的代码用于填充其他数据结构,例如ConcurrentQueue和ConcurrentBag,并且运行良好。
我在使用不可变列表时是否缺少某些内容,是否需要更正?
请注意,这是一个多线程操作,但这不是问题,因为此数据结构是线程安全的。
最佳答案
顾名思义,列表是不可变的,即您不能将该项添加到原始列表中。在MSDN链接的“备注”部分中:
同样来自Add方法文档的here:
添加将为您提供添加了项目的新列表引用(原始列表将保持不变):
immutableList = immutableList.Add(writeData);
关于c# - 不可变列表未添加数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25824158/