c# - LINQ 将行分组为列

标签 c# linq list

如何将最多 7 行分组为一行,其中设置的列决定分组?

我没有修复行。

我看到堆栈溢出已经有这个问题,但答案是在 SQL 中。

我需要 LINQ。我不知道如何才能实现这一目标?

请查看下面的 StackOverflow 链接

T- SQL group rows into columns

Table 

Id  RefId  Name   
------------------------
 1    1    Test1    
 2    1    Test2    
 3    1    Test3    
 4    2    Test4    
 5    2    Test5    

所以,输出将是..

RefId  Name1  Name2  Name3  Name4 Name5 Name6 Name7  Id1 Id2 Id3 Id4  Id5  Id6  Id7
-----------------------------------------------------------------------------------
 1     Test1  Test2  Test4  null  null  null  null   1   2   3   null null null null
 2     Test4  Test5   null  null  null  null  null   4   5  null null null null null

这里,行数最多为 7 是固定的......不超过这个

最佳答案

也许就这么简单?

var persons = new []{
        new Person{Name = "John", Link = "L1"},
        new Person{Name = "John", Link = "L2"},
        new Person{Name = "John", Link = "L3"},
        new Person{Name = "Steve", Link = "L1"},
        new Person{Name = "Steve", Link = "L2"},
    };

var grouped = persons.GroupBy(p => p.Name)
                     .Select(g => new{Name = g.Key, Links = g.Select(x => x.Link)});

关于c# - LINQ 将行分组为列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24038306/

相关文章:

java - 如何保留排序映射的值顺序?

python - while 在 for 循环中循环获取列表列表

C# 接口(interface)约束

c# - 如何向服务器发送 "hello"并回复 "hi"?

c# - 使用 C# 中的字典,将某些自定义类属性用作同一类中另一个属性(形成为值)的唯一键

c# - 这个 "listMerging"代码可以改进吗?

java - 查找我定义的类的列表中是否存在具有给定变量值的元素

c# - 如何开始使用 MVVM 模型实现串口控制?

c# - .net 框架是否支持在不同版本 1.1 和 3.5 之间使用策略文件进行程序集重定向?

linq - "There is already an open datareader associated with this command"- 即使使用 Include()