在下面的代码中,我将从API检索的数据分配给名为groupedGamesListing的变量。
使用该变量,我正在选择数据并创建一个名为GroupedGames的新对象。
我可以使用它,但是现在我试图引入一个名为GameControllerId的新属性。
我需要将GameControllerId设为两个数字之一,具体取决于一年。
我开始编写代码,但是我不知道如何在lambda表达式中表示if / then或Ternary运算符。
这就是我正在使用的东西。
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。
在上面的表达式中这可能吗?
谢谢!
答案 0 :(得分:0)
我不确定您的确切用例,但您可以考虑
var groupedGamesListing = apiResults.SelectMany(g => new GroupedGames
{
// ...
GameId = g.CurrentGameId.ToString(),
GameControllerId = (g.GameYear == 2018) ? 34729 : 99483,
// ...
}).ToList();
看起来apiResults
是列表列表,您可能会遇到问题,因此这会使原始对象变平。