我的想法是使用一个新列表(List1)并将其与另一个列表(List2)进行比较,并创建一个新列表(List3),该列表排除两个列表中的所有公共元素以及非公共元素的结果。 (对我而言)困难的是List1和List2元素不是真正的匹配。 List1元素可能是List2元素的一部分,但不是真正的匹配项。使用exclude似乎不允许使用IndexOf比较两个列表元素。 有谁知道如何实现这一目标? 提前致谢。
答案 0 :(得分:2)
假设您具有List1和List2。下面是比较两个列表中元素的最简单方法。
IList<string> List3 = new List<string>();
foreach (var item1 in List1)
{
foreach(var item2 in List3)
{
if (item1 == item2)
{
List3.Add(item1);
}
}
}
答案 1 :(得分:0)
我的想法是使用一个新列表(List1)并将其与另一个列表进行比较 (List2)并创建一个排除所有常见元素的新列表(List3) 在两个列表中,并在非常见元素上显示结果。
来自评论
我需要比较两个列表中的每个元素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));
答案 2 :(得分:0)
如何?
List commonElements = new List<string>();
foreach (var smallString in SmallList)
{
if (large.Any(x => x.Contains(smallString)))
{
// Add to common elements
commonElements.Add(smallString);
}
}