【发布时间】:2018-04-14 09:18:55
【问题描述】:
在函数式编程中,单链表非常流行,因为它很容易重用子列表,而无需分配任何内存或复制值。这意味着您可以从一端添加或删除项目而无需任何分配。 F# 列表是这样的。
根据我的阅读,System.Collections.Immutable.ImmutableList<T> 听起来像是 System.Collections.Generic.List<T> 的不可变版本,它是对数组的抽象。这比链表更适合随机访问,但在添加或删除项目时需要复制整个列表。
System.Collections.Generic.LinkedList<T> 是一个可变的双向链表,这意味着添加或删除项需要突变和/或复制。
我找不到System.Collections.Immutable.ImmutableLinkedList<T>。
System.Collections.Immutable 包中真的没有不可变的单链表吗?在这里使用Microsoft.FSharp.Core.List<T> 是最好的选择吗?
【问题讨论】:
-
这可能会让你感兴趣:stackoverflow.com/a/10045677/84206
-
这对您有用吗? link
-
我认为 ImmutableQueue 可能适合我的用例,谢谢
标签: c# .net list linked-list immutability