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();
            }

解决方案 »

  1.   

    用linq的Except
    List<int> list3 = list2.Except(list1).ToList();
      

  2.   

    list有序么?
    无序的话,感觉n的平方的复杂度就是极限了吧.
      

  3.   


    如果查找相同呢? List<int> list3 = list2.Intersect(list1).ToList();
      

  4.   

    - - 看来又得看看书了 linq用的比较少。
      

  5.   

     static void Main(string[] args)
            {
                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());
                }
                       }
      

  6.   


    交集的话: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