我目前正在从List<List<string>>返回一个列表( await getWorlds() ),现在我正在循环遍历每个列表,并在每个列表中获得第一个条目。
我只是想知道是否有其他方法可以用.AddRange或其他方式将它们直接添加到.AddRange中?
这是我的代码:
var worlds = await getWorlds();
foreach (var w in worlds)
{
Worlds.Add(w[0]);
}有办法把这个缩短到更小的地方吗?像Worlds = worlds.AddRange([0]);之类的吗?我只想获得第一个条目[0]并将每个条目添加到Worlds中。我只是想看看是否有一种更干净的方法来编写我的代码。我没有找到任何例子。
发布于 2018-09-04 13:27:34
你可以这样做:
var worlds = await getWorlds();
Worlds.AddRange(worlds.Select(w => w[0]));虽然我不明白为什么foreach那么糟糕。
发布于 2018-09-04 13:38:09
这并不完全是您要寻找的,但您可以这样做,以添加所有子列表中的所有项目实例,而不仅仅是第一个。(这将使列表变成一个单一的项目列表)
var worlds = await getWorlds();
Worlds.AddRange(worlds.SelectMany(w=>w));https://stackoverflow.com/questions/52167422
复制相似问题