[英]Assigning object properties based on a ternary conditional inside a linq query
在下面的代碼中,我將從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。
這可能在上面的表達式中嗎?
謝謝!
我不確定你的確切用例,但你可以考慮一下
var groupedGamesListing = apiResults.SelectMany(g => new GroupedGames
{
// ...
GameId = g.CurrentGameId.ToString(),
GameControllerId = (g.GameYear == 2018) ? 34729 : 99483,
// ...
}).ToList();
看起來您可能會apiResults
作為列表列表的問題,因此這會使原始對象變平。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.