2016-11-17 61 views
0


我有一個關於填充網格的問題。
Okey,
想象一下,我們有一個網格,可以打印關於籃球隊的一些數據。
我們有四個主要類別:用不同的數據組合填充網格的數據源

public class Player 
{ 
    public string PlayerName { get; set; } 
} 

public class Staff 
{ 
    public string StaffName { get; set; } 
} 

public class Fan 
{ 
    public string FanName { get; set; } 
    public List<string> FanFavoriteTeam { get; set; } 
} 

public class Team 
{ 
    public string TeamName { get; set; } 
    public List<Player> Players { get; set; } 
    public List<Staff> Staff { get; set; } 
    public List<Fan> Fans { get; set; } 
} 

...當然類的填充電網

public class Result 
{ 
    public string TeamName { get; set; } 
    public string PlayerName { get; set; } 
    public string StaffName { get; set; } 
    public string FanName { get; set; } 
    public string FanFavoriteTeam { get; set; } 
} 

我想打印所有可能的組合,例如,假設我們有這樣的數據:
隊名 - 金州勇士
球員斯蒂芬 - 庫裏,凱文 - 杜蘭特
員工 - 史蒂夫·科爾,金特里,羅恩·亞當斯
個風扇 - 杜克阿拉德(收藏:凱爾特人,湖人),多利安梅西,拉蒙特科林伍德

電網應該打印此信息:

1st row)Golden State - Stephen Curry - Steve Kerr - Duke Allard - Celtics 
2)Golden State - Stephen Curry - Steve Kerr - Duke Allard - Lakers 
3)Golden State - Stephen Curry - Steve Kerr - Dorian Macy 
4)Golden State - Stephen Curry - Steve Kerr - Lamont Collingwood 
5)Golden State - Stephen Curry - Alvin Gentry - Duke Allard - Celtics 
6)Golden State - Stephen Curry - Alvin Gentry - Duke Allard - Lakers 
7)Golden State - Stephen Curry - Alvin Gentry - Dorian Macy 
8)Golden State - Stephen Curry - Alvin Gentry - Lamont Collingwood 
9)Golden State - Stephen Curry - Ron Adams - Duke Allard - Celtics 
10)Golden State - Stephen Curry - Ron Adams - Duke Allard - Lakers 
11)Golden State - Stephen Curry - Ron Adams - Dorian Macy 
12)Golden State - Stephen Curry - Ron Adams - Lamont Collingwood 
13)Golden State - Kevin Durant - Steve Kerr - Duke Allard - Celtics 
14)Golden State - Kevin Durant - Steve Kerr - Duke Allard - Lakers 
15)Golden State - Kevin Durant - Steve Kerr - Dorian Macy 
16)Golden State - Kevin Durant - Steve Kerr - Lamont Collingwood 
17)Golden State - Kevin Durant - Alvin Gentry - Duke Allard - Celtics 
18)Golden State - Kevin Durant - Alvin Gentry - Duke Allard - Lakers 
19)Golden State - Kevin Durant - Alvin Gentry - Dorian Macy 
20)Golden State - Kevin Durant - Alvin Gentry - Lamont Collingwood 
21)Golden State - Kevin Durant - Ron Adams - Duke Allard - Celtics 
22)Golden State - Kevin Durant - Ron Adams - Duke Allard - Lakers 
23)Golden State - Kevin Durant - Ron Adams - Dorian Macy 
24)Golden State - Kevin Durant - Ron Adams - Lamont Collingwood 

附:我想實現這個沒有鏈接的foreach語句
P.P.S.對不起,這個長的描述

回答

0

您可以使用LINQ來爲你做的循環:

var result = from t in teams 
      from p in players 
      from s in staff 
      from f in fans 
      select new Result { 
       TeamName = t.TeamName, 
       PlayerName = p.PlayerName, 
       StaffName = s.StaffName, 
       FanName = f.FanName, 
      } 

這基本上沒有交叉連接表中,沒有任何限制,所以每一個團隊與每個球員匹配,工作人員和粉絲,我們得到的數據爲Cartesian product

+0

謝謝你的迴應,你真的幫了我。 但是我們假設我們在Fan類中有另一個領域,列表 FanFavouriteTeams(例如:凱爾特人隊,湖人隊,活塞隊), 那麼現在有什麼解決方案? –