LINQ - 如何在 GroupBy 之后获取列的子集

本文关键字:获取 子集 之后 GroupBy LINQ | 更新日期: 2023-09-27 18:34:33

这个 LINQ-to-SQL 查询有效(在 LINQpad 中测试(:

var q5 = LOGs.Where(r => r.APP_NAME == "Toaster")  
    .GroupBy(pol => pol.CASE_NO)  
    .Select(grp => grp.First())  
    .OrderByDescending(l => l.WHEN);  
q5.Dump();   

但是,这将返回每行的所有列。
如何优化 Select(( 部分以指定某些列?
我可以通过添加 .ToList(( 到查询,然后查询 q5:

var q5a = q5.Select(r => new {CASE=r.CASE_NO, WHEN = r.WHEN});  
q5a.Dump();  

我可以在一个语句而不是两个语句中完成吗?
谢谢--

LINQ - 如何在 GroupBy 之后获取列的子集

你为什么不过滤在哪里?

 var q5 = LOGs.Where(r => r.APP_NAME == "Toaster")
    .Select(r=> new{r.CASE_NO, r.WHEN})  
    .GroupBy(pol => pol.CASE_NO)  
    .Select(grp => grp.First())  
    .OrderByDescending(l => l.WHEN);  

remembar new {CASE=r.CASE_NO, WHEN = r.WHEN}由于属性名称不同而创建新的匿名类型,new {r.CASE_NO, r.WHEN}没有!