C# 在LINQ中使用GroupBy创建一个FSharpMap(FSharpMap的)
我希望做一些与问题非常类似的事情,但是我不能将结果放入字典,我需要将其放入C# 在LINQ中使用GroupBy创建一个FSharpMap(FSharpMap的),c#,linq,C#,Linq,我希望做一些与问题非常类似的事情,但是我不能将结果放入字典,我需要将其放入FSharpMaps。数据将来自数据库,如下所示: User Name Key Value A Z 1 A Y 2 A X 3 B Z 1 B Y 2 B X 3
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
类型,其中用户名是外部FSharpMap
的键,键是内部FSharpMap
的键。我知道必须使用GroupBy减少用户名类别,但我不确定如何将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
)
)
)
)
)
)
)
MyDatabaseService.AspnetDB.SynchronousReturn(
context=>newfsharpmap(
context.aspnet_用户值
.GroupBy(databaseValue=>databaseValue.UserName)
.选择(组=>
新元组(
组键,
新地图(
组。选择(keyValuePair=>
新元组(
keyValuePair.Key,
键值对
)
)
)
)
)
)
)
FYI,您需要对问题中的一些字符进行转义:FSharpMap
正在被吃掉。用反勾号将其包装,或使用
和