4
好吧,让我迷失在这一张上。我有一个对象列表。每个对象都是一个非唯一的ID。我想对这个ID进行分组,但是对于我的生活,我无法弄清楚如何做到这一点。将列表分组到F#列表中的列表中
这是我
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? –
'snd'被使用是因为'groupBy'返回一个元组列表,其中第一个元素是分组键(在你的情况下是Id值),第二个元组元素是所有匹配的列表。函数['snd'](https://msdn.microsoft.com/en-us/visualfsharpdocs/conceptual/operators.snd%5B't1,'t2%5D-function-%5Bfsharp%5D)将第二项来自一个元组 –
真棒谢谢你。 –