州有城市。只有在没有平局的情况下,我才需要拥有大多数城市的州。并列意味着排名前 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/