问题标签 [immutable-collections]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Service Fabric:存储在 IReliableDictionary 中的 ImmutableList 在应用程序升级时返回空
我目前正在开发一个保留多个IReliableDictionary
对象的 Service Fabric 有状态服务。正如本文所推荐的那样,其中一些字典具有ImmutableLists
as 值。
例如,我有一个. 字典被完美地填充和检索,但是当应用程序升级时,我所有的不可变列表都返回为空。所有其他数据都完好无损,如果我切换到,则集合保留得很好。为了进行此测试,我正在填充列表,增加服务版本号,并在我的本地集群上点击“发布 > 升级”。我已经测试了 1 和 5 节点配置,效果相同。
是否存在与和
的兼容性问题IReliableDictionary<string,ImmutableList<string>>
IReliableDictionary<string,List<string>>
ImmutableList
IReliableDictionary
我应该注意什么?我该如何正确存储我的状态?我很乐意根据需要分享任何代码,但我不确定哪些部分是相关的。
首次运行时初始化并在后续运行时检索:
scala - 如何根据scala中的条件替换映射中的值
我有几个不可变的地图记录,例如:
我需要识别"name"
每条记录的键并检查其值。如果值为"Jane"
,我需要替换"Doe"
并更新地图记录。
c# - C# 不可变堆栈表现
我需要在我的代码中使用System.Collections.Immutable ImmutableStack<T>
但是我注意到自从使用它以来性能受到了一些影响。我想知道是否有替代方案可以提供更好的性能?
我测试Stack<T>
了ImmutableStack<T>
以下内容
平均Stack<T>
比 . 快约 20%-25% ImmutableStack<T>
。我在整个应用程序中都使用它,因此性能损失会造成损失。它需要是一个堆栈并且它需要是不可变的。关于可以采取哪些措施来提高这种性能,有什么建议吗?
java - java只读ByteBuffer是否是具有不可变字节数组的正确对象?
我需要有将在多线程环境中使用的不可变字节数组。我遇到了ByteBuffer
类,可以使用方法将其设为只读.asReadOnlyBuffer
。
但是我想知道一个正确的不可变字节容器,以下是关于我的:
- 如果
ByteBuffer
创建时ByteBuffer.wrap()
初始数组可能会更改,则ByteBuffer
无论.asReadOnlyBuffer
. ByteBuffer
多线程的只读读取操作是否安全?
还有其他顾虑吗?
c# - ReadOnlyDictionary 和 ImmutableDictionary 有什么区别?
在 C# 中,这两个容器之间的主要区别(在功能或用例方面)是什么?Google 上似乎没有任何信息可以比较这些。
System.Collections.ObjectModel.ReadOnlyDictionary System.Collections.Immutable.ImmutableDictionary
我知道 anImmutableDictionary
是线程安全的。a 也一样ReadOnlyDictionary
吗?
这不是如何正确使用 IReadOnlyDictionary?. 这个问题是关于如何使用 IReadOnlyDictionary。这个问题是关于两者之间的区别(正如有人在 2015 年对该主题评论的那样,这将是一个不同的问题 - 即这个问题)
scala - scala中的递归不会停止
我有一种方法可以帮助我解决骑士之旅。我希望在找到解决方案后立即停止递归,但是它会继续进行。
最后,它返回近 20 种不同的解决方案。我在下面添加了我的代码,有人可以指出这里有什么问题吗?
reactjs - 如何更新嵌套不可变映射中的值
我是 immutable.js 的新手,并试图找出一种更新嵌套地图的方法
这是我的对象
我正在尝试使用 setIn 函数设置“名称”对象的值
该值未按预期更新。我在这里有什么遗漏吗
c# - 可以与 DataContract 一起使用的最佳 C# 可排序序列化列表是什么?
作为一个类的一部分,我有一些不可变的 POCO 对象只是作为配置文件的数据传输对象。
信息
我希望能够将其序列化为以下 XML(或者将来可能是 JSON?)
稍后我将使用此配置来制作一个排序列表,以便我可以针对已使用的磁盘空间量获取适当的警告和日志级别。例如,我使用了 77% 的磁盘空间,从排序列表中获取适当的错误消息 (75%)。
我可以让 List 使用 SortedList 并仍然使用 DataContract 维护我正在寻找的 XML 输出吗?
我可以保持我的类不可变吗?
还是为了简单起见,我最好使用 List 并为了易于使用而使用 LINQ?
c# - 从 F# 中的地图中删除所有
C#:
在 C# 中,我有这样的东西:
我假设ImmutableDictionary<K,V>.RemoveRange Method (IEnumerable<K>)
引入了该方法,因为它比一系列Remove(K)
调用更有效。它只创建一次生成的不可变对象,而不是为keys
要删除的每个元素创建一次。
F#:
在F#中实现相同目标的最佳方法是什么。我想出了这个递归解决方案:
但我怀疑它是否像RemoveRange
上面那样有效。
问题:
RemoveAll
F#中最有效的等价物是什么?- 你认为 F# 递归优化会编译成同样有效的东西吗?
c# - 如何在实体框架 6 中使用 ImmutableList<> 而不是 List<>
在我的项目中,我们使用 Entity Framework 6 和 Microsoft 的 System.Collections.Immutable types nuget 包。
我们的目标是能够使用 EF 对数据库进行查询,并且默认情况下返回的数据是不可变的。
因为我们有one-to-many
关系,所以在 EF 中我们使用一种List<>
类型来表示我们结构中的关系。但是由于我们希望它是不可变的并且有强有力的保证,所以我们想使用它ImmutableList<>
。
只是将表类属性从更改为List<>
似乎ImmutableList<>
不起作用,因为新的迁移将忽略ImmutableList<>
并删除我们之前的一对多关系。
所以,我的问题是,是否有某种方法可以使 EF 与该ImmutableList<>
类型一起工作,如果没有,还有什么其他方法可以使这个 EF 表结构不可变?