2014-10-29 118 views
3

我試圖建立與LINQ設置自定義的結果。目前,我有以下內容:嵌套匿名類型的LINQ

List<Team> teams = Team.FindAll(); 
List<Player> players = Player.FindAll(); 

var results = (from player in players 
       select new 
       { 
       PlayerId = player.Id, 
       PlayerName = player.Name, 
       Teams = teams.Where(t => player.TeamsIds.Contains(t.TeamId)).ToList() 
       }); 

我希望團隊成爲新的自定義類型。我想要的類型有一個叫器isChecked,TeamId和TeamName領域。但是,每個團隊目前只有TeamId和TeamName。我如何獲得這個LINQ語句中添加的IsChecked屬性?有沒有辦法嵌套「選擇新的」語句?如果是這樣,怎麼樣?

謝謝?

回答

8

當然,只想補充一點,作爲投影:

var results = (from player in players 
       select new 
       { 
       PlayerId = player.Id, 
       PlayerName = player.Name, 
       Teams = teams.Where(t => player.TeamsIds.Contains(t.TeamId)) 
           .Select(t => new { 
                t.TeamId, 
                t.TeamName, 
                IsChecked = ??? 
               } 
           .ToList() 
       }); 

或使用的查詢語法

var results = (from player in players 
       select new 
       { 
       PlayerId = player.Id, 
       PlayerName = player.Name, 
       Teams = (from t in teams 
          where player.TeamsIds.Contains(t.TeamId) 
          select new { 
             t.TeamId, 
             t.TeamName, 
             IsChecked = ??? 
            } 
         ).ToList() 
       });