使用Linq对字符串进行分组,排序和连接

Sim*_*ods 1 linq vb.net

假设我有以下数据

Key    ID      Data
A      1       Hello
A      2       World
B      2       Bar
B      1       Foo
Run Code Online (Sandbox Code Playgroud)

我期待产生结果

A     HelloWorld
B     FooBar
Run Code Online (Sandbox Code Playgroud)

我正在努力使语法正确 - 我试图使用Aggregate,但我不确定我是否可以(或应该)使用SelectMany

我会感激任何帮助.

    Dim data = result.Rows.
                    GroupBy(Function(r) r.Key).
                    Select(Function(g) g.OrderBy(Function(s) s.ID)).
                    Aggregate(New StringBuilder, Function(cur, nxt)                   
                              cur.Append(nxt.First.Data))
Run Code Online (Sandbox Code Playgroud)

谢谢

西蒙

Str*_*ior 11

我认为这个(C#)应该有效:

var data = from r in result.Rows
           group r by r.Item("Key").ToString() into g
           select new {
               g.Key, 
               Joined = string.Join("", g.OrderBy(s => s.Item("ID"))
                                         .Select(s => s.Item("Data")))
           };
Run Code Online (Sandbox Code Playgroud)