gpt4 book ai didi

c# - 如何在保留重复项的同时进行整数列表交集?

转载 作者:可可西里 更新时间:2023-11-01 09:05:45 25 4
gpt4 key购买 nike

我正在做最大公因数和最小公倍数作业,我必须列出公因数。 Intersection() 将不起作用,因为它会删除重复项。 Contains() 将不起作用,因为如果它在第二个列表中看到 int,它会返回第一个列表中所有匹配的 int。有没有办法做一个不明显的交叉点?

编辑:很抱歉没有提供示例,这就是我的意思:

如果我有套装:

{1, 2, 2, 2, 3, 3, 4, 5}
{1, 1, 2, 2, 3, 3, 3, 4, 4}

我想要输出

{1, 2, 2, 3, 3, 4}

最佳答案

我写了这个扩展来解决这个问题:

public static IEnumerable<T> Supersect<T>(this IEnumerable<T> a, ICollection<T> b)
=> a.Where(b.Remove);

例子:

var a = new List<int> { 1, 2, 2, 2, 3, 3, 4, 5 };
var b = new List<int> { 1, 1, 2, 2, 3, 3, 3, 4, 4};

var result = a.Supersect(b);

结果:

{ 1, 2, 2, 3, 3, 4 }

关于c# - 如何在保留重复项的同时进行整数列表交集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5011948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com