在LINQ中等效For循环

kbv*_*hnu 3 .net c# linq c#-4.0

我是LINQ的新手.

playerData是一个list<DataAccess.Team>,我想初始化另一个playerViewModelList包含数据的列表playerData.

我试过了foreach.

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

是否可以使用LINQ实现相同的功能?

Ry-*_*Ry- 7

Select 在这种情况下是等效的:

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

当然,这假设playerViewModelList是一个List<PlayersViewModel>或类似的东西.如果你不能覆盖playerViewModelList,只需坚持foreach循环.


Ily*_*kov 5

playerData.ForEach(d => playerViewModelList.Add(new PlayersViewModel {
    PicPath = d.Tied.ToString(),
    PlayerID = (int)d.ID,
    PlayerName = d.TeamName
}));
Run Code Online (Sandbox Code Playgroud)

要么

playerViewModelList.AddRange(playerData.Select(d => new PlayersViewModel {
    PicPath = d.Tied.ToString(),
    PlayerID = (int)d.ID,
    PlayerName = d.TeamName
}));
Run Code Online (Sandbox Code Playgroud)