从Forming a tournament table with LINQ (Fixture List)
上的最后一篇文章开始添加数字列表时,例如
var fixture = ListMatches(new List<string> { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16" });
当我运行代码时,数字1总是第2位。 e.g。
Round 1
9 v 1
Round 2
10 v 1
Round 3
11 v 1
我正在努力弄清楚我将如何能够修改代码,以便每个“Round”数字将从“Home”和“Away”交替出现。因此如果1是第2,那么在下一轮它将是第1。如果16在第1轮中排名第1,那么第2轮将排在第2位。
Round 1
9 v 1
Round 2
1 v 10
Round 3
11 v 1
答案 0 :(得分:2)
这可能是一个愚蠢的建议,但你可以改变在偶数轮上玩的游戏的顺序。
List<List<Tuple<string, string>>> fixture =
ListMatches(new List<string> { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16" });
bool switchOrder = false;
foreach (round in fixture)
{
if (switchOrder)
{
foreach (var tuple in round)
{
string temp = tuple.Item1;
tuple.Item1 = tuple.Item2;
tuple.Item2 = temp;
}
}
switchOrder = !switchOrder
}