直接来自`await`的AddRange

时间:2018-09-04 13:25:29

标签: c# async-await addrange

我目前正在从List<List<string>>返回一个列表(await getWorlds()),现在我遍历每个列表,并获得每个列表的第一个条目。

我只是想知道是否还有另一种方法可以使用Worlds或其他方法将它们全部直接直接添加到.AddRange中?

这是我的代码:

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

有什么方法可以将其缩短到更小的范围?像Worlds = worlds.AddRange([0]);之类的?我只想获取第一个条目[0]并将每个条目添加到Worlds。我只是想看看是否有一种更干净的代码编写方式。我还没有找到任何例子。

2 个答案:

答案 0 :(得分:3)

您可以这样做:

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

尽管我不明白为什么foreach如此糟糕。

答案 1 :(得分:2)

这并不是您想要的,但是您可以这样做也可以将所有子列表中的所有项实例添加到所有子列表中,而不仅仅是第一个。会将列表拼合为单个项目列表)

title.split()