我目前正在从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));