gpt4 book ai didi

c# - 比较两个 List 并打印重复项

转载 作者:太空狗 更新时间:2023-10-29 18:05:55 26 4
gpt4 key购买 nike

在比较两个 List<T> 对象时,我无法保留重复项。目标是将重复项添加到第三个列表中,称之为 list3

list1 大约有 5 项,而 list2 有 10 项。

list3 应包含以下内容:00T51234, 00T54567, 00T57894

List<string> list1 = new List<string>(){"00T51234", "00T54567", "00T57894",
"00T55263", "00T58965"};

List<string> list2 = new List<string>(){"00T59633", "00T52222", "00T57894",
"00T52322", "00T51234", "00T54567", "00T57894", "00T57897",
"00T55556", "00T59563"};

List<string> list3 = new List<string>();

我尝试使用 Ani's resolution ,如下所示:

var lookup2 = list2.ToLookup(str => str);

var result = from str in list1
group str by str into strGroup
let missingCount
= Math.Max(0, strGroup.Count() - lookup2[strGroup.Key].Count())
from missingStr in strGroup.Take(missingCount)
select missingStr;

但是这个解决方案并没有给我想要的结果。任何帮助将不胜感激。谢谢!

最佳答案

使用Enumerable.Intersect方法

List<string> duplicates = list1.Intersect(list2).ToList();

关于c# - 比较两个 List<string> 并打印重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21148175/

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