c# - 从分组 Linq 查询生成字符串

标签 c# linq string

给出以下代码:

var people = new List<person>(){ new person { Name = "John", FamilyName = "Pendray" },
             new person { FamilyName = "Emery", Name = "Jake"},
             new person { FamilyName = "Pendray", Name = "Richard" } };

var q = from p in people
                 orderby p.Name
                 group p by p.FamilyName into fam
                 orderby fam.Key
                 select new { fam.Key, members = from p in fam select p };

是否可以用将输出 IEnumerable <string 的选择替换最后一行> 包含这两个字符串: “彭德雷·约翰·理查德” “埃默里· jack ”?是否可以将 linq 查询投影到这样的字符串中?

编辑:我知道这可以通过进一步的代码实现,但我感兴趣的是这是否可以从 linq 查询本身内部完成,类似于 VB 能够从查询中投影 xml,如 http://www.thinqlinq.com/default/Projecting-XML-from-LINQ-to-SQL.aspx 中那样。 (特别是本页的最后一个代码块)

最佳答案

var q = from p in people
        orderby p.Name
        group p by p.FamilyName into fam
        orderby fam.Key
        select fam.Key + " " + string.Join(" ", (from fm in fam select fm.Name).ToArray());

返回

金刚砂 jack
彭德雷·约翰·理查德

关于c# - 从分组 Linq 查询生成字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/414984/

相关文章:

c# - 如何在浏览器关闭时触发事件

java - 如何在java中获取二维数组列表的最大值/最小值

c# - 从 IQueryable<T> 中删除 OrderBy

python - 如何更改 python 中 print 语句的输出格式?

java - 字符串:如何用单个字符替换多个可能的字符?

c# - GPS计算Windows Phone 7上两点之间的距离

c# - 将图表类型从极坐标更改为雷达

c# - 通过配置进行 WCF 模拟

c# - 如何确保我的 LINQ 查询在我的 DAL 中调用时执行,而不是以延迟方式执行?

python - 引号中的引号