【发布时间】:2019-08-27 12:45:27
【问题描述】:
在下面的代码中,我将从 API 检索到的数据分配给名为 groupedGamesListing 的变量。
使用该变量,我将选择数据并创建一个名为 GroupedGames 的新对象。
我让它工作了,但现在我试图引入一个名为 GameControllerId 的新属性。
我需要 GameControllerId 是两个数字之一,具体取决于年份。
我开始编写代码,但不知道如何在 lambda 表达式中表示 if/then 或三元运算符。
这是我正在使用的。
var groupedGamesListing = apiResults.Select(games => new GroupedGames
{
// ...
GameId = games.Select(g => g.CurrentGameId).FirstOrDefault().ToString(),
GameControllerId = games.Select(g => { (g.GameYear == 2018) ? 34729 : 99483 }),
// ...
}).ToList();
所以如果 g.GameYear 是 2018,那么我需要 GameControllerId 为 34729。如果不是,则为 99483。
这可能在上面的表达式中吗?
谢谢!
【问题讨论】:
-
games是 几场 场比赛 - 如果一个是 2018 年的,一个是 2017 年的,你还不清楚你要选择什么价值。 -
您要选择所有游戏的
GameControllerId还是只选择1 个? -
@SkyeBoniwell 如果你只对第一个游戏感兴趣,为什么不先选择它,然后提取你需要的属性呢?
-
所以你不在乎不同的游戏有不同的年份?你乐意拿第一吗?请注意,使用
GameId = games.FirstOrDefault()?.CurrentGameId?.ToString()更简单 -
对于
GameControllerId,如果没有任何游戏,您希望结果是什么?