首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >直接从‘AddRange’发出的

直接从‘AddRange’发出的
EN

Stack Overflow用户
提问于 2018-09-04 13:25:28
回答 2查看 407关注 0票数 0

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

我只是想知道是否有其他方法可以用.AddRange或其他方式将它们直接添加到.AddRange中?

这是我的代码:

代码语言:javascript
复制
var worlds = await getWorlds();
foreach (var w in worlds)
{
    Worlds.Add(w[0]);
}

有办法把这个缩短到更小的地方吗?像Worlds = worlds.AddRange([0]);之类的吗?我只想获得第一个条目[0]并将每个条目添加到Worlds中。我只是想看看是否有一种更干净的方法来编写我的代码。我没有找到任何例子。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-04 13:27:34

你可以这样做:

代码语言:javascript
复制
var worlds = await getWorlds();
Worlds.AddRange(worlds.Select(w => w[0]));

虽然我不明白为什么foreach那么糟糕。

票数 3
EN

Stack Overflow用户

发布于 2018-09-04 13:38:09

这并不完全是您要寻找的,但您可以这样做,以添加所有子列表中的所有项目实例,而不仅仅是第一个。(这将使列表变成一个单一的项目列表)

代码语言:javascript
复制
var worlds = await getWorlds();
Worlds.AddRange(worlds.SelectMany(w=>w));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52167422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档