如何合并列表>在 C# 中
我有一个 List
,其中包含>
{ {"A" , "B" },
{"C" , "D" }
}
我需要将所有内部列表合并到另一个列表中,
因此生成的 List
将包含
{"A","B","C","D"}
现在我使用for循环
来执行此操作
有没有办法使用LINQ
或Lambda表达式
来执行此操作。
请帮助我做到这一点。
提前致谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
不完全是一个联盟,但你可以尝试这个
Not Exactly a Union, but you can try this
SelectMany 构建一个表达式树,在计算时将列表列表展平为组合成员的单个列表。
ToList 强制计算表达式树并生成一个列表。
如果要消除重复项,可以在调用“ToList()”之前添加 Distinct 调用
SelectMany builds up a expression tree that when evaluated flattens the list of list to a single list of combined members.
ToList forces the expression tree to be evaluated and which results in a List.
If you want to eliminate duplicates you can add a Distinct call before the call to 'ToList()'
您可以使用 SelectMany 扩展方法。
You can use the SelectMany extension method.
聚合怎么样?
对我来说,这比使用 SelectMany 更具表现力,因为它准确地告诉您在做什么:通过对所有列表调用 union 来聚合列表列表。
How about Aggregate?
To me, this is more expressive than using SelectMany, because it is telling you exactly what you are doing: Aggregate your list of lists by calling union on them all.
只是为了好玩:
这当然与 @Alexander Taran 的解决方案相同,只是使用查询语法而不是 lambda 语法。 (或者至少应该是 – 我手边没有 LINQPad。)
Just for kicks:
This is of course the same solution as @Alexander Taran's, just with query syntax instead of lambda syntax. (Or at least it should be – I don't have my LINQPad handy.)