c# - 使用 linq 检查列表计数是否一致

标签 c# .net linq lambda linq-to-entities

州有城市。只有在没有平局的情况下,我才需要拥有大多数城市的州。并列意味着排名前 2 的州拥有相同数量的城市。

var stateWithMostCities = _states
  .OrderByDescending(_p => _p.cities.Count())
  .Take(2)
  .ToList();

现在我可以检查第一个州的城市数是否=第二个州,并确定是否存在平局。然而,我想问是否可以使用 takewhile、skip 和 linq 的其他创造性用法在上面显示的同一行上实现这一点。谢谢

最佳答案

类似这样的吗?

var stateWithMostCitiesWithoutATie =_states.GroupBy(_p => _p.cities.Count())
                                           .OrderByDescending(g=>g.Key)
                                           .FirstOrDefault(g=> g.Count()==1? g.First():null);

关键是,正如 @Mong Zhu 在按城市数量分组时指出的那样,之后你可以按 desc 排序以获得最大值,如果最大组超过一个,那么你就打平了

关于c# - 使用 linq 检查列表计数是否一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56972714/

相关文章:

c# - XML 节点最新时间戳 C#

c# - ListBox SelectedIndex 作为命令参数

c# - 这样的 java 代码在 C# 中看起来如何?

c# - 比较器有变量类型吗?

c# - 从 CLI C++ 应用程序加载库内的 C# WPF 表单

c# - 层次结构对象的通用类工厂或方法

c# - 我可以在安装 NuGet 包时解决添加这些 .dll 问题吗?

c# - 获取C#中声音设备的名称

c# - DataTable : select specific column into datatable, 上的 Linq 不是整个表

c# - LINQ 项目总和集合以返回带有结果的对象(多列)