如何压缩两个不同大小的列表以创建一个与原始列表中最长的列表大小相同的新列表?

2024-02-27

我有两个不同大小的 C# 列表,例如

List<int> list1 = new List<int>{1,2,3,4,5,6,7};
List<int> list2 = new List<int>{4,5,6,7,8,9};

我想使用 linq Zip 方法将这两个组合成大小为 list1 的元组列表。这是我正在寻找的结果列表

{(1,4), (2,5), (3,6), (4,7), (5,8), (6,9), (7,0)}  //this is of type List<(int,int)

由于 list1 的最后一项在 list2 中没有对应项,因此我用默认值填充结果列表的最后一项(在本例中为 0,因为在我的情况下它永远不会出现在任何原始列表中)。

有没有办法可以单独使用 linq Zip 方法来实现此目的?


有一个有用且流行的MoreLinq https://www.nuget.org/packages/morelinq/图书馆。安装并使用。

using MoreLinq;
var result = list1.ZipLongest(list2, (x, y) => (x, y));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何压缩两个不同大小的列表以创建一个与原始列表中最长的列表大小相同的新列表? 的相关文章

随机推荐