在项目不匹配 100%(仅部分匹配)的两个列表中获取唯一元素



我的想法是使用一个新列表(List1(,将其与另一个列表(List2(进行比较,并创建一个新的列表(List3(,该列表排除了列表中的所有公共元素和非公共元素的结果。(对我来说(困难的是List1和List2元素不是真正匹配的。List1元素可能是List2元素的一部分,但不是真正匹配的。使用exclude似乎不允许使用IndexOf来比较这两个列表元素。有人知道如何做到这一点吗?提前谢谢。

假设您有List1和List2。下面是比较两个列表中元素的最简单方法。

IList<string> List3 = new List<string>();
foreach (var item1 in List1)
{
foreach(var item2 in List3)
{ 
if (item1 == item2)
{
List3.Add(item1);
}
}
}

我的想法是使用一个新列表(List1(并将其与另一个列表进行比较(清单2(,并创建一个排除所有公共元素的新列表(清单3(在非公共元素的列表和结果中。

来自评论

我需要比较两个列表中的每个元素List1元素存在于List2元素(两个字符串(。

从两个列表中查找唯一性的最简单方法之一

var List1 = new List<string>() { "a", "b", "c", "d" };
var List2 = new List<string>() { "a", "e", "f", "g", "c","z" };
var List3 = new List<string>();
List3.AddRange(List1.Except(List2));
List3.AddRange(List2.Except(List1));
List3.ForEach(l=>Console.WriteLine(l));

这个怎么样:

List commonElements = new List<string>();
foreach (var smallString in SmallList)
{
if (large.Any(x => x.Contains(smallString)))
{
// Add to common elements
commonElements.Add(smallString);
}
}

最新更新