【问题标题】:Count list with parameters?带参数的计数列表?
【发布时间】:2013-11-14 06:09:56
【问题描述】:

我有两个班级名单球队,和比赛

在我的团队类中,我有一个 int id 和字符串名称,在比赛类中,我有一个 int team1Id 和 team2Id,我想知道是否有办法计算比赛列表中一个团队参加了多少场比赛..

喜欢

if(teamlist.id == matcheslist.team1 || teamlist.id == matcheslist.team2) count++;

对不起,如果我没有很好地解释,英语不是我的第一语言。

编辑1:

这里是列表, 公共列表团队=新列表(); 公共列表匹配=新列表(); Team 和 Match 是我的类,有基本信息,id 和 name 为 Team 和 id,team1 和 team2 为 Match,我尝试使用 find 但它只返回一个结果

【问题讨论】:

  • 您可以使用linq,但您的问题太不清楚而无法回答。您可以发布一些代码和示例吗? (例如您的列表的外观)

标签: c#


【解决方案1】:

鉴于这种设置:

class Team {
    public int TeamId { get; set; }
}

class Match {
    public Team[] Teams { get; set; }
}

var matches = new List<Match>() { 
    new Match() {
        Teams = new Team[] {
            new Team() { TeamId = 1 },
            new Team() { TeamId = 2 } 
        }
    },
    new Match() {
        Teams = new Team[] {
            new Team() { TeamId = 1 },
            new Team() { TeamId = 15 } 
        }
    }
};

你可以这样计算它们:

var teamOneGameCount = matches.Count(match => match.Teams.Any(team => team.TeamId == 1));
var teamTwoGameCount = matches.Count(match => match.Teams.Any(team => team.TeamId == 2));
var teamFifteenGameCount = matches.Count(match => match.Teams.Any(team => team.TeamId == 15));

【讨论】:

    【解决方案2】:

    这里是 linq 示例:

    List<Teamlist> item1 = new List<Teamlist>();
    List<Matcheslist> item2 = new List<Matcheslist>();
    var count = item1.Count(c => item2.Any(c2 => c2.Id2 == c.Id1));
    

    【讨论】:

      【解决方案3】:

      我想你想要这样的东西:

      List<teamlist> list = new List<teamlist>();
      int count = 0;
      list.Add(team1);
      list.Add(team2);
      ...
      foreach(teamlist tl in list)
      {
          if(teamlist.id == matcheslist.team1 || teamlist.id == matcheslist.team2) count++;
      }
      

      你需要那个“列表”关键字吗? 或者您需要一个 LINQ 查询操作,例如:

      using System.Linq;
      ...
      List<int> list = new List<int>();
      list.AddRange(new []{1,2,3,4,5,6});
      int count = list.Count(n => n > 2); // 4
      

      【讨论】:

        猜你喜欢
        • 2019-06-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-14
        • 2020-07-13
        • 2020-06-10
        • 2011-10-26
        相关资源
        最近更新 更多