好的,这个有点让我摸不着头脑。我有一个对象列表,每个对象里都有一个非唯一的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" }]]
snd
是因为groupBy
返回一个元组列表,其中第一项是分组键(在您的情况下是Id值),第二个元组项是所有匹配项的列表。函数snd
从元组中提取第二个项。 - Chad Gilbert