直接从"等待"添加范围



我目前正在从await getWorlds()返回列表列表(List<List<string>>(,现在我正在循环浏览每个列表,并获取每个列表中的第一个条目。

我只是想知道是否有另一种方法可以使用.AddRange或其他东西快速将它们全部直接添加到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));

相关内容

  • 没有找到相关文章

最新更新