C# 选定字段上的Linq Count()
SQL的等价物是什么:C# 选定字段上的Linq Count(),c#,linq,C#,Linq,SQL的等价物是什么: SELECT Id, Name, Count(PolicyNumber) ... 在林克。我想做一些类似的事情: var distinctClients = clientPolicies .Select(i => new { i.ClientId, i.Name, i.PolicyNumber.Count() }) .Distinct() .OrderBy(i =>
SELECT Id, Name, Count(PolicyNumber) ...
在林克。我想做一些类似的事情:
var distinctClients = clientPolicies
.Select(i => new { i.ClientId, i.Name, i.PolicyNumber.Count() })
.Distinct()
.OrderBy(i => i.Name).ToList();
在Linq中有没有实现这一点的方法?提前谢谢
var distinctClients = clientPolicies
.GroupBy(i => new { i.ClientId, i.Name})
.Select(g => new { ClientId= g.Key.ClientId, Name=g.Key.Name,Count=g.Count()})
.OrderBy(i => i.Name).ToList();
我没有测试,但应该很接近
我没有测试它,但它应该很接近……假设PolicyNumber是一个集合;我不明白你的代码为什么不起作用。您能解释一下哪里有问题吗?请尝试将
i.PolicyNumber.Count()
的结果分配给命名属性。您是否看到语法错误或异常?我在I.PolicyNumber.Count()中看到错误:无效的匿名类型成员声明符…
此错误。我想我需要做一个由ClientId和Name组成的小组。关于如何实现这一点有什么想法吗?假设PolicyNumber是一个集合;我不明白你的代码为什么不起作用。您能解释一下哪里有问题吗?请尝试将i.PolicyNumber.Count()
的结果分配给命名属性。您是否看到语法错误或异常?我在I.PolicyNumber.Count()中看到错误:无效的匿名类型成员声明符…
此错误。我想我需要做一个由ClientId和Name组成的小组。关于如何实现这一点有什么想法吗?这是正确的答案。请注意,在SQL中,如果查询中没有GROUP BY,则无法执行计数操作。然后请注意,此答案使用LINQ GroupBy,在下一步中从生成的聚合中获取计数。感谢您的回复。我得到错误:无效的匿名类型成员声明符。。。在g.Count()。有什么想法吗?很好!这正是我想要的@James Curran谢谢你的帮助friendOP-这是正确的答案。请注意,在SQL中,如果查询中没有GROUP BY,则无法执行计数操作。然后请注意,此答案使用LINQ GroupBy,在下一步中从生成的聚合中获取计数。感谢您的回复。我得到错误:无效的匿名类型成员声明符。。。在g.Count()。有什么想法吗?很好!这正是我要找的@James Curran谢谢你的帮助