Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 选定字段上的Linq Count()_C#_Linq - Fatal编程技术网

C# 选定字段上的Linq Count()

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 =>

SQL的等价物是什么:

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谢谢你的帮助