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