if(teamData[0].currentGoals > teamData[1].currentGoals)
{
teamData[0].teamWins += 1;
teamData[1].teamLosses += 1;
}
else if (teamData[0].currentGoals < teamData[1].currentGoals)
{
teamData[1].teamWins += 1;
teamData[0].teamLosses += 1;
}
else if (teamData[0].currentGoals == teamData[1].currentGoals)
{
teamData[0].teamDraws += 1;
teamData[1].teamDraws += 1;
}
代码基本上做了它需要做的事情,但它不适用于我正在进行的项目。 请帮助任何资源阅读和建议将不胜感激。
编辑: 对不起,我在解释事情上并不是那么棒。我希望能够比较另外30多个项目(if语句)。我需要赢,输,结果。 这是一场足球锦标赛。
答案 0 :(得分:1)
我假设“更大阵列”意味着更多游戏,并且游戏总是有两个团队:
// Game class has teamData list/array:
List<Game> games = new List<Game>();
// ... Populate games
foreach (var game in games) {
var g0 = game.teamData[0].currentGoals, g1 = game.teamData[1].currentGoals;
if (g0 > g1) {
game.teamData[0].teamWins++;;
game.teamData[1].teamLosses++;
}
else if (g1 > g0) {
game.teamData[1].teamWins++;;
game.teamData[0].teamLosses++;
}
else {
game.teamData[0].teamDraws++;
game.teamData[1].teamDraws++;
}
}
答案 1 :(得分:0)
怎么样:
var t1 = teamData[0];
var t2 = teamData[1];
t1.teamWins = t1.currentGoals > t2.currentGoals ? t1.teamWins + 1 : t1.teamWins;
t1.teamLosses = t1.currentGoals < t2.currentGoals ? t1.teamLosses + 1 : t1.teamLosses;
t1.teamDraws = t1.currentGoals == t2.currentGoals ? t1.teamDraws + 1 : t1.teamDraws;
t2.teamWins = t2.currentGoals > t1.currentGoals ? t2.teamWins + 1 : t2.teamWins;
t2.teamLosses = t2.currentGoals < t1.currentGoals ? t2.teamLosses + 1 : t2.teamLosses;
t2.teamDraws = t2.currentGoals == t1.currentGoals ? t2.teamDraws + 1 : t2.teamDraws;
或:
...
if (t1.currentGoals > t2.currentGoals) {t1.teamWins++; t2.teamLosses++;}
else if (t1.currentGoals < t2.currentGoals) {t1.teamLosses++; t2.teamWins++;}
else {t1.teamDraws++; t2.teamDraws++;}
对于多个游戏,只需使用refs将方法中的一个插入方法:
private void processResult(ref [yourTeamDataType] t1, ref [yourTeamDataType] t2) { ... comparison code ... }
只是比较:
foreach (var game in games)
processResult(ref game.teamData[0], ref game.teamData[1]);