簡體   English   中英

基於linq查詢中的三元條件分配對象屬性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM