代码之家  ›  专栏  ›  技术社区  ›  karamazovbros

生成缺失元素列表的有效方法是给出另一个列表吗?[复制]

  •  -1
  • karamazovbros  · 技术社区  · 8 年前

    我有一个包含元素的列表 [1,2,3,4,5] .

    如果我有另一个包含主列表元素的列表,比如 [1,2] 或 [2,4,5]

    [1, 2] [1,2,3,4,5] [3, 4 ,5]

    [2, 4, 5] 利用 会给予 [1, 3]

    2 回复  |  直到 8 年前
        1
  •  3
  •   Loocid    8 年前

    你可以试试 .Except . Docs

    var list1 = new List<int> { 1, 2, 3, 4, 5 };
    var list2 = new List<int> { 1, 3, 5 };
    
    var missing = list1.Except(list2).ToList();
    
    missing.ForEach(i => Console.Write("{0}\t", i));
    
    >> 2    4
    
        2
  •  0
  •   Tarek    8 年前

    你可以试试 HashSet ( MSDN )

    var hash = new HashSet<int>(new int[] {1, 2});
    var list = new List<int> {1, 2, 3, 4, 5};
    var missing = list.Where(x => !hash.Contains(x)); // 3, 4, 5;
    

    Contains 应该是O(1)操作。