why when table。计数=1个表迭代函数得到1个以上的键值对?如果这是一个功能,我怎么能预期行为呢?
//
let table = new HashMultiMap<string, int> (HashIdentity.Structural)
table.Add("a", 1)
table.Add("a", 1)
table.Add("a", 1)
// now table.Count is one
let reduced = table.Fold (fun k v acc -> (k,v) :: acc) []
let acc = ref []
table.Iterate (fun k v -> acc.contents <- (k,v) :: acc.contents)
//
reduced和acc-contents包含三对("a",1)
Count
成员的文档中写道:
哈希表中的密钥总数
如果有多个值与同一个键相关联,那么仍然只有一个键,因此值1是示例的预期结果。据我所见,没有任何属性返回值的总数,但您可以使用Fold
:轻松实现这一点
let valueCount = table.Fold (fun _ _ n -> n + 1) 0