簡體   English   中英

直接來自`await`的AddRange

[英]AddRange from `await` directly

我目前正在從await getWorlds()返回列表列表( List<List<string>> ),現在我正在遍歷每個列表,並獲取每個列表的第一個條目。

我只是想知道是否還有另一種方法可以使用.AddRange Worlds方法將所有這些方法直接快速添加到Worlds

這是我的代碼:

var worlds = await getWorlds();
foreach (var w in worlds)
{
    Worlds.Add(w[0]);
}

有什么辦法可以將其縮短到更小的尺寸嗎? Worlds = worlds.AddRange([0]); 或者其他的東西? 我只想獲取第一個條目[0] ,並將每個條目添加到Worlds 我只是想看看是否有一種更干凈的代碼編寫方式。 我還沒有找到任何例子。

你可以這樣做:

var worlds = await getWorlds();
Worlds.AddRange(worlds.Select(w => w[0]));

雖然我不明白為什么foreach如此糟糕。

這並不是您要查找的內容,但是您也可以這樣做,以便在所有子列表中添加項目的所有實例,而不僅僅是第一個。(這會將列表展平為單個項目列表) )

var worlds = await getWorlds();
Worlds.AddRange(worlds.SelectMany(w=>w));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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