在 LINQ 中使用 GroupBy 创建一个 FSharpMap(FSharpMap)
本文关键字:FSharpMap 一个 创建 LINQ GroupBy | 更新日期: 2023-09-27 18:36:06
我想做一些与这个问题非常相似的事情,但是我不能把结果放进字典里,我需要把它放到FSharpMap
s里。数据将来自数据库,如下所示:
User Name Key Value
A Z 1
A Y 2
A X 3
B Z 1
B Y 2
B X 3
C Z 1
C Y 2
C X 3
最终结果应该是类型 FSharpMap<string, FSharpMap<string, string>>
,其中用户名是外部FSharpMap
的密钥,密钥是内部FSharpMap
的密钥。我知道必须使用GroupBy减少用户名类别,但我不确定如何将组的结果转换为FSharpMap
。我怎样才能做到这一点?
这是我最终实现它的方式。我希望得到改进建议
MyDatabaseService.AspnetDB.SynchronousReturn(
context => new FSharpMap<string, FSharpMap<string, string>>(
context.aspnet_UsersValues
.GroupBy(databaseValue => databaseValue.UserName)
.Select(group =>
new Tuple<string, FSharpMap<string, string>>(
group.Key,
new FSharpMap<string, string>(
group.Select(keyValuePair =>
new Tuple<string, string>(
keyValuePair.Key,
keyValuePair.Value
)
)
)
)
)
)
)