gpt4 book ai didi

c# - 将两个具有重复值的 List 相交

转载 作者:太空宇宙 更新时间:2023-11-03 17:51:44 25 4
gpt4 key购买 nike

我有两个 int 类型的列表:

List<int> list1 = new List<int> {12,55,55,55,34};
List<int> list2 = new List<int> {12,55};

如果我将 list1 与 list2 相交,则预期结果为 {12,55,55,55}

我怎样才能做到这一点?有没有其他方法可以达到同样的效果?

最佳答案

试试这个:

List<int> result = list1.Where(i => list2.Contains(i)).ToList();

这样做是只选择 list1 中的记录存在于list2 ,这将导致 IEnumerable<int> .然后,ToList()把它变回 List<int>

此性能方面的最佳版本是转换 list2HashSet<int>Contains 之前称呼。这允许更快的查找:

HashSet<int> hashSet = new HashSet<int>(list2);
List<int> result = list1.Where(i => hashSet.Contains(i)).ToList();

关于c# - 将两个具有重复值的 List<int> 相交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23903030/

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