我有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 = ??
答案 0 :(得分:5)
var unique = oldList.Except(newList);
http://msdn.microsoft.com/en-us/library/system.linq.enumerable.except.aspx
答案 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)