2012-12-24 18 views
0

從上一篇文章開始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總是第二。例如

Round 1 
9 v 1 

Round 2 
10 v 1 

Round 3 
11 v 1 

我竭力要弄清楚如何我將能夠修改代碼,使每個「圓圓」的編號將從「家」和「離開」交替。所以如果1是2,那麼下一輪就是1。如果16輪1是第一次,這將是第二個,客場方面,在第2輪。

Round 1 
9 v 1 

Round 2 
1 v 10 

Round 3 
11 v 1 

回答

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 
} 
+0

非常真實!非常感謝!不知道爲什麼我沒有想到這一點! :) – Nexiv