我有两个清单,想要知道哪个项目在第一个项目中,哪个项目在第二个项目中,
List<int> viewphonenumid = new List<int>();
List<int?> DtoPhonenumId = new List<int?>();
例如,viewphonenumid有{1,2,3,4,5,6},而DtoPhonenumId有{3,4,5,6},我希望在新列表中有{1,2}。
答案 0 :(得分:1)
var newList= viewphonenumid.Except(DtoPhonenumId).ToList();
您也可以指定比较器。
答案 1 :(得分:0)
也许是这样的:
var newList= viewphonenumid.Where(v =>! DtoPhonenumId.Contains(v)).ToList();
答案 2 :(得分:0)
我建议你使用Enumerable.Except http://msdn.microsoft.com/ru-ru/library/bb300779(v=vs.110).aspx
像这样的东西
(new List<int> {1,2,3,4}).Except(new List<int> {3,4})
答案 3 :(得分:0)
尝试以下:
List<int> result = new List<int>();
foreach(int element in viewphonenumid)
if(!DtoPhonenumId.Contains(element))
result.Add(element);
我希望有帮助
答案 4 :(得分:0)
如果要比较C#中的两个项目列表,则应使用Enumerable.SequenceEqual方法。
List<int> list1 = new List<int>();
list1.Add(7);
list1.Add(5);
list1.Add(9);
List<int> list2 = new List<int>();
list2.Add(7);
list2.Add(5);
list2.Add(9);
if (list1.SequenceEqual(list2))
{
//lists are identical
}
else
{
// lists have different items
}
LINQ有一个非常好的算法。