2

我有一个包含多行相似的数据。它们是游戏中的最新结果,例如,如果游戏中有 3 个进球,则意味着 3 条线。

在此处输入图像描述

我想区分一场比赛。但是不同的行必须是最新的(firstOrDefault?)

我确实想同时显示 status=Confirmed 和 status=Open 但显然我不想同时显示同一个游戏“Confirmed”和“Open”

所以我想按“主队”和“外队”这两个栏目进行分组。但是对于同一场比赛,如果有 3 个进球,我会得到 3 条线,但我想要“最新线”。

有人可以帮我解决这个问题吗?

4

1 回答 1

3

你可以尝试这样的事情:

data.GroupBy(d => new { Hometeam = d.Hometeam, Outteam = d.Outteam })
    .Select(g => g.OrderBy(d => d.Status)
                  .ThenByDescending(d => d.GoalsHometeams + d.GoalsOutteams)
                  .First())
  1. 按团队组合分组
  2. 对于每个组,查找具有最新状态的条目(按字母顺序排在前面ConfirmedOpen
  3. 如果多个具有相同状态(即多个Open),则查找具有最高组合分数的条目。
  4. 获取每组的第一个结果(应该是最新的)。

演示:http: //ideone.com/vlCtw

样本结果:

Current game status results:
Confirmed, Fylkir, Valur, 3, 1
Confirmed, Selfoss, Grindavik, 3, 3
Confirmed, Keflavik, IBV, 1, 0
Confirmed, Stjarnan, IA, 1, 1
Confirmed, Breioablik, Fram, 0, 2
于 2012-05-31T22:46:42.390 回答