在 Lambda/LINQ 中组合列表
如果我有 IEnumerable
类型的变量,是否有一个 LINQ 语句或 lambda 表达式可以应用于它,它将组合返回 >
IEnumerable
的列表代码>?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如果我有 IEnumerable
类型的变量,是否有一个 LINQ 语句或 lambda 表达式可以应用于它,它将组合返回 >
IEnumerable
的列表代码>?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(6)
怎么样
How about
不完全是单个方法调用,但您应该能够编写
Where 'lists' is your
IEnumerable
and concatenated is of type>
IEnumerable
。(从技术上讲,这是对
SelectMany
的单个方法调用 - 它看起来并不像我在开头语句中所表达的全部意思。只是想澄清一下,以防万一任何人都感到困惑或发表评论 - 我在发布后才意识到它是如何阅读的)。Not exactly a single method call, but you should be able to write
Where 'lists' is your
IEnumerable<List<string>>
and concatenated is of typeIEnumerable<string>
.(Technically this is a single method call to
SelectMany
- it just doesn't look like it was all I meant by the opening statement. Just wanted to clear that up in case anyone got confused or commented - I realised after I'd posted how it could have read).制定一个简单的方法。 不需要 LINQ:
Make a simple method. No need for LINQ:
使用 LINQ 表达式...
... 效果很好。 :-)
b
将是一个IEnumerable
并且a
将是一个string
。Using LINQ expression...
... works just fine. :-)
b
will be anIEnumerable<string>
anda
will be astring
.这是另一个 LINQ 查询理解。
Here's another LINQ query comprehension.
SelectMany - 即
对于 someList 中的每个项目,然后使用 lambda“x => x”来获取 IEnumerable 对于内部物品。 在这种情况下,每个“x”是List,其已经是IEnumerable。
然后将它们作为连续块返回。 本质上,SelectMany 类似于(简化的):
尽管这在某种程度上被简化了。
SelectMany - i.e.
For each item in someList, this then uses the lambda "x => x" to get an IEnumerable<T> for the inner items. In this case, each "x" is a List<T>, which is already IEnumerable<T>.
These are then returned as a contiguous block. Essentially, SelectMany is something like (simplified):
Although that is simplified somewhat.