List<int> ids = new List<int>();
ids.Add(1);
ids.Add(2); List<int> ids1 = new List<int>();
ids1.Add(1);
ids1.Add(2);
ids1.Add(3);
for (int i = 0; i < ids.Count; i++)
{
ids1.Remove(ids[i]);
}
for (int i = 0; i < ids1.Count; i++)
{
Response.Write(ids1[i]);
Response.Write("<br/>");
Response.End();
}
ids.Add(1);
ids.Add(2); List<int> ids1 = new List<int>();
ids1.Add(1);
ids1.Add(2);
ids1.Add(3);
for (int i = 0; i < ids.Count; i++)
{
ids1.Remove(ids[i]);
}
for (int i = 0; i < ids1.Count; i++)
{
Response.Write(ids1[i]);
Response.Write("<br/>");
Response.End();
}
List<int> list3 = list2.Except(list1).ToList();
无序的话,感觉n的平方的复杂度就是极限了吧.
如果查找相同呢? List<int> list3 = list2.Intersect(list1).ToList();
{
List<int> ids = new List<int>();
ids.Add(1);
ids.Add(2); List<int> ids1 = new List<int>();
ids1.Add(1);
ids1.Add(2);
ids1.Add(3); var c = ids.Cast<int>().Concat(ids1.Cast<int>()).GroupBy((t) => t).Where((t) => t.Count() == 1);
foreach (var d in c)
{
Console.Write(d.Key.ToString());
}
}
交集的话:Intersect,差集的话,得看你如何取差,只匹配单个list不在另一个list的用Except即可。若是取各自在对方list里不存在的,Except两次再合并即可;如list1(1,2,6),list2(1,2,3),
List<int> list3 = list1.Except(list2).ToList();
List<int> list4 = list2.Except(list1).ToList();
list4.AddRange(list3);//循环list4输出3,6