好的,所以我迷失了这个。我有一个对象列表。每个对象都作为非唯一ID。我想对这个ID进行分组,但对于我的生活,我无法弄清楚如何做到这一点。
这就是我所拥有的
type fooObject = {
Id : int
Info : string
}
let fooObjects: fooObject list
数据可能看起来像这样
[ { Id = 1 ; Data = "foo" } ; { Id = 1 ; Data = "also foo" } ; { Id = 2 ; Data = "Not foo" } ]
我想要像
这样的东西let fooObjectsGroupedById : fooObject list list
所以最终结果看起来像这样
[ [{ Id = 1 ; Data = "foo" } ; { Id = 1 ; Data = "also foo" } ] ; [{ Id = 2 ; Data = "Not foo" }]]
答案 0 :(得分:7)
使用List.groupBy
:
let groupById fooObjects =
List.groupBy (fun foo -> foo.Id) fooObjects
|> List.map snd