旧列表的唯一值

时间:2013-01-31 13:29:14

标签: c# linq list

  

可能重复:
  Remove sublist from a list

我有2个名单:

var oldList = new List<int>(){1,2,3,4,5};

var newList = new List<int>(){1,2,3,6,7};

如何获得旧列表的唯一值(使用LINQ)?

//hardcoded list:
var list =  new List<int>(){4,5};

//LINQ:
var list = ??

5 个答案:

答案 0 :(得分:5)

答案 1 :(得分:2)

var list = oldList.Except(newList).ToList();

这意味着它会返回oldList中不在newList内的所有元素。

答案 2 :(得分:2)

你的意思是oldList中不在newList中的值?如果是这样的话:

var list = oldList.Except(newList);

请参阅MSDN上的Enumerable.Except

如果您确实需要列表,请致电ToList()

答案 3 :(得分:2)

您可以使用Enumerable.Except()方法。

  

产生两个序列的集合差异。

var oldList = new List<int>() { 1, 2, 3, 4, 5 };
var newList = new List<int>() { 1, 2, 3, 6, 7 };

var value = oldList.Except(newList);

foreach (var i in value)
{
    Console.WriteLine(i);
}

这是DEMO

答案 4 :(得分:0)

您必须使用Except方法。

var list = oldList.Except(newList);
  

产生两个序列的集合差异。 [Documentation]