Mik*_*ynn 2 .net c# linq asp.net flatten
我在下面的这个结构中有一个实体列表。如何在一次调用中使用 linq创建List<int>所有AwayTeamId和的不同列表HomeTeamId?我知道我可以在 HomeTeamId 上选择多个并获取所有这些,但我还需要包含 AwayTeamId。
class Game {
int AwayTeamId;
int HomeTeamId;
}
Run Code Online (Sandbox Code Playgroud)
假设您正在寻找所有球队 ID(主场或客场)的平面列表,那么将两个 SELECT 联合起来怎么样?
var teamIds = games.Select(g => g.HomeTeamId).Union(games.Select(g => g.AwayTeamId));
Run Code Online (Sandbox Code Playgroud)
[是上面示例中的实体games列表]Game
Uriil 的回答可能更短:
var result = games
.SelectMany(game => new[] { game.AwayTeamId, game.HomeTeamId })
.Distinct()
;
Run Code Online (Sandbox Code Playgroud)
不需要额外的 .Select 并列出每个游戏记录的创建。