linq使用LINQ合并2列表对象列表

问题描述 投票:-1回答:1

我有一个列表{{1,3,5},{2,4,6}}列表{{7},{8}}列表

是否有快速生成列表{{1,3,5,7},{2,4,6,8}}

c# linq merge
1个回答
3
投票

我有一个列表{{1,3,5},{2,4,6}}另一个列表{{7},{8}}是否有快速生成列表{{1,3,5,5 ,7},{2,4,6,8}}

是:使用Zip序列运算符。

IEnumerable<IEnumerable<int>> lists1 = whatever;
IEnumerable<IEnumerable<int>> lists2 = whatever;
List<List<int>> zipped = lists1
  .Zip(lists2, (list1, list2) => list1.Concat(list2).ToList())
  .ToList();

跟着。

  • 我们有两个包含序列的序列。
  • Zip从第一个中取出一个,从第二个中取出一个,然后将它们组合起来
  • 组合是将list2连接到list1的末尾。
  • 那给你一个IEnumerable<int>。我们想要一个List<int>,所以ToList吧。
  • Zip的结果是IEnumerable<List<int>>
  • 我们想要一个List<List<int>>,所以我们ToList整个事情。

这是编写LINQ查询时应该使用的技术;将所有内容分解为更简单步骤的工作流程,然后将它们组合在一起。

© www.soinside.com 2019 - 2024. All rights reserved.