好吧,所以我迷失了这一点。我有一个对象列表。每个对象作为一个非唯一的 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" }]]
最佳答案
使用 List.groupBy
:
let groupById fooObjects =
List.groupBy (fun foo -> foo.Id) fooObjects
|> List.map snd
关于f# - 在 F# 中将列表分组为列表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45886612/