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