我正在尝试使用 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()
});
我希望 Teams 成为一种新的自定义类型。我希望该类型有一个名为 IsChecked、TeamId 和 TeamName 的字段。但是,每个团队目前只有 TeamId 和 TeamName。如何在此 LINQ 语句中添加 IsChecked 属性?有没有办法嵌套“选择新”语句?如果是,怎么办?
谢谢?
最佳答案
当然,只需将其添加为投影:
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()
});
关于c# - LINQ 中的嵌套匿名类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26636055/