나는거야 대부분의 사람들이 결과에 동의하는 게임과 같은 가장 강력한 예측을 원한다고 가정하십시오.
var predictions = db.Predictions
.GroupBy(g => g.gameId)
.Select(g => new
{
gameId = g.Key,
homeWin = g.Sum(h => h.homeWin),
awayWin = g.Sum(a => a.awayWin),
draw = g.Sum(d => d.draw)
})
.Select(g => new
{
gameId = g.gameId,
prediction = g.homeWin > g.awayWin
? (g.homeWin > draw
? 'homeWin'
: 'draw')
: (g.awayWin > g.draw
? 'awayWin'
: 'draw'),
strength = g.homeWin > g.awayWin
? (g.homeWin > draw
? g.homeWin
: g.draw)
: (g.awayWin > g.draw
? g.awayWin
: g.draw)
})
.OrderByDescending(g => g.strength)
.Take(3);
두 개의 선택을 결합 할 수는 있지만 IMO는 코드의 가독성을 해칠 수 있습니다.
예제 데이터가 주어지면 예제 출력은 무엇입니까? –
어떻게 예측 순위를 매기십니까? –
죄송합니다, 예 출력! 내가 원하는 모든 것은 gameId가 출력 될 것입니다 우리가 볼 수있는 예제 데이터를 사용하여 gameId 5는 모두 5 홈 우승과 5 우승을 예상했습니다 (그의 시나리오에서는 가장 높은 등급의 팀을 가장 좋아하는 팀으로 뽑았습니다. 이 질문에 대한 범위의) 나는 gameId 5를 두 번 돌려 주길 원하지 않습니다. –