法一:循环中循环比较 list1循环中加入list2循环 进行比较,将不包含在list2中的数据保存到一个新的集合即可。
法二:将list1通过循环拼接成一个字符串,再循环list2,判断list2中的数据是否包含在list1字符串中,将不包含的数据保存到新的集合即可。
虽然这两种方法不是最好的,但至少解决了你的问题。。。
应该还有更好的方法,同时期待。。。
int[] numbersA = { 1,3,5,6,8};
int[] numbersB = { 1, 3, 5, 7, 9 };
var commonNumbers =numbersA.Except(numbersB);
foreach (var n in commonNumbers)
{
Console.WriteLine(n);
}
最后得出来的结果就是6,7,8,9
汗颜啊。。没看清楼主的问题。
但是我感觉你的这个问题问的有点奇怪》...
List<int> lst1 = new List<int>();
List<int> lst2 = new List<int>();
for (int i = 0; i < 6; i++) {
lst1.Add(i);
}
for (int i = 4; i < 10; i++)
{
lst2.Add(i);
}
List<int> lst3=lst1.FindAll(m=>
{ return !lst2.Exists(n => { return n == m; }); });
lst3.AddRange( lst2.FindAll(m =>
{ return !lst1.Exists(n => { return n == m; }); }));
public static IEnumerable<int> Except(IEnumerable<int> list1, IEnumerable<int> list2) { foreach (int item in list1) { if (!list2.Contains(item)) yield return item; } }
list1.Except(list2);//得到list1有的,list2没有的 list2.Except(list1);//得到list2有的,list1没有的
是.NET 2.0