为了账号安全,请及时绑定邮箱和手机立即绑定

列表内的列表中的LINQ Max()

列表内的列表中的LINQ Max()

C#
胡说叔叔 2021-05-10 14:09:36
我正在为LINQ查询而苦苦挣扎。我必须在所有选区(使用选区列表)中找到候选人的最高投票价值(最高),并获取ConstituencyName,CandidateName和Votes值。这意味着我必须在两个列表中找到最大值,然后选择对象选区(或至少获取其值)。public class ListOfConstituencies(){    public List<Constituency> Constituencies {get;set;}}public class Constituency{    public string ConstituencyName {get;set;}    public List<Candidate> Candidates {get;set;}}public class Candidate{    public string CandidateName {get;set;}    public int Votes {get;set;}}
查看完整描述

3 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

您可以将匿名与orderbydescending结合使用来解决此问题。


var contituencyWithMostVotes = Constituencies

    .Select(c => new

    {

        Contituency = c,

        Candidate = c.Candidates.OrderByDescending(can => can.Votes).First()

    })

    .OrderByDescending(c => c.Candidate.Votes).First();

结果“contituencyWithMostVotes”是一个具有 2 个属性的匿名对象。

  1. 实际选区对象

  2. 该选区中票数最高的候选人。

您可以从这些属性中检索所有信息。


查看完整回答
反对 回复 2021-05-29
  • 3 回答
  • 0 关注
  • 128 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信