3

私はLINQが初めてです。

playerDataは であり、からのデータで のlist<DataAccess.Team>別のリストを初期化したいと考えています。playerViewModelListplayerData

やってみforeachました。

 foreach (DataAccess.Team dataTeam in playerData)
 {
     playerViewModelList.Add(new PlayersViewModel
     {
         PicPath = dataTeam.Tied.ToString(),
         PlayerID = (int)dataTeam.ID,
         PlayerName = dataTeam.TeamName
     });
  }

LINQ を使用して同じことを達成することは可能ですか?

4

3 に答える 3

7

Selectこの場合は次のようになります。

playerViewModelList = playerData.Select(dataTeam => new PlayersViewModel
                                        {
                                            PicPath = dataTeam.Tied.ToString(),
                                            PlayerID = (int)dataTeam.ID,
                                            PlayerName = dataTeam.TeamName
                                        }).ToList();

もちろん、これplayerViewModelListは aList<PlayersViewModel>または類似のものであると仮定します。上書きできない場合は、ループplayerViewModelListに固執してください。foreach

于 2012-06-20T22:08:55.827 に答える
5
playerData.ForEach(d => playerViewModelList.Add(new PlayersViewModel {
    PicPath = d.Tied.ToString(),
    PlayerID = (int)d.ID,
    PlayerName = d.TeamName
}));

また

playerViewModelList.AddRange(playerData.Select(d => new PlayersViewModel {
    PicPath = d.Tied.ToString(),
    PlayerID = (int)d.ID,
    PlayerName = d.TeamName
}));
于 2012-06-20T22:10:07.130 に答える
0

または、List<>両側にあるように:

  playerViewModelList = playerData.ConvertAll(dataTeam => new PlayersViewModel
  {
    PicPath = dataTeam.Tied.ToString(),
    PlayerID = (int)dataTeam.ID,
    PlayerName = dataTeam.TeamName
  }); 
于 2012-06-21T12:40:12.817 に答える