function が与えられた場合f:ValueA -> ValueB
、タイプの IGrouping を にどのようにマップできIGrouping<Key, ValueA>
ますIGrouping<Key, ValueB>
か?
問題のインスタンス:
あなたがこのタイプを持っているとしましょう:
TaggedItem = { Tag:Tag ; Item:Item }
そしてこのクエリ:
query {
for i in taggedItems
groupBy i.Tag into g
select g
}
これにより type: の seq が得られますが、IGrouping<Tag, TaggedItem>
実際には type: の seq が必要ですIGrouping<Tag, Item>
。マッピング関数は次のとおりです。fun taggedItem -> taggedItem.Item
解決
解決策は、グループ化のマッピングを回避し、代わりに、選択した回答で指摘されているように、groupValBy を使用して、グループ化中に変換を行うことです。選択した回答は、あるタイプのグループから別のグループへのマッピングを行う方法も示しています。
query {
for i in taggedItems
groupValBy i.Tag i.Item into g
select g
}