Linq表达式将DataTable转换为<Key,List <Values >>的字典

Rya*_*yan 5 c# linq

我正在尝试转换表单的DataTable

Key  Value
1    A
1    B
1    C
2    X
2    Y
Run Code Online (Sandbox Code Playgroud)

到字典

1 [A,B,C]
2 [X,Y]
Run Code Online (Sandbox Code Playgroud)

我正在使用的lambda表达式是

GetTable("..sql..").AsEnumerable().
    .Select(r => new {Key = r.Field<int>("Key"), Val = r.Field<string>("Value")})
    .GroupBy(g => g.Key)
    .ToDictionary(a => a.Key, a => String.Join(",", a.Value))
Run Code Online (Sandbox Code Playgroud)

但它失败了"无法将lambda表达式转换为'System.Collections.Generic.IEqualityComparer',因为它不是委托类型"

我怎么能做到这一点?

Rya*_*yan 4

这是这样做的:

GetTable("..sql..").AsEnumerable().
    .Select(r => new {Key = r.Field<int>("Key"), Val = r.Field<string>("Value")})
    .GroupBy(g => g.Key)
    .ToDictionary(a => a.Key, a => String.Join(",", a.Select(x => x.Value).ToList()))
Run Code Online (Sandbox Code Playgroud)