2016-11-17 3 views
0


グリッドの塗りつぶしには1つの問題があります。
Okey、
バスケットボールチームに関するデータを印刷するグリッドがあるとします。
我々は4つの主要なクラスがあります。データの異なる組み合わせでグリッドのデータソースを塗りつぶす

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; } 
} 

を満たすコースのクラスで、例えば私たちは、このデータを持っていると仮定します。
チーム名 - ゴールデンステートウォリアーズ
プレーヤー - Stephen Curry、Kevin Durant
スタッフ - Steve Kerr、Alvin Gentry、Ron Adams
人のファン - デュークアラード(お気に入り:セルティックス、レイカーズ):

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 

P.S.、ドリアンメイシー、ラモントコリングウッド

グリッドは、この情報を印刷する必要があります私は連鎖した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, 
      } 

これは、基本的には、テーブルのクロス参加しない、制限なしで、したがって、すべてのチームはすべてのプレーヤーと一致しています、スタッフ、ファンの皆様には、0​​というデータが届いています。

+0

本当にありがとうございました。 Fanクラスのリストに別のフィールドがあるとします。 FanFavouriteTeams(例:Celtics、Lakers、Pistons) 解決方法は今ですか? –

関連する問題