type myClass(property1 : Map<int, string>) =
member val Property1 = property1 with get, set
let myObject = myClass(Map.ofList [(1, "one"); (2, "two"); (3, "three")])
我理解正确的是,为了将元素添加到属性集合中,我们应该编写
myObject.Property1 <- myObject.Property1.Add (5, "five")
而不是
myObject.Property1.Add (5, "five")
?没有更简洁的语法?感谢。
答案 0 :(得分:5)
F#地图是不可变的,因此Add
会返回带有附加元素的新Map
。因此,如果您将其存储在类的属性中,是的,您必须将新的Map
分配给该属性。没有捷径语法,因为mutables不是真正的惯用语F#。
对于这个应用程序,您可能会发现最好打开System.Collections.Generic
并使用Dictionary
,这是可变的,可能更适合携带内部对象。