繁体   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