如何比较两个列表,ASP.net

时间:2014-08-13 10:49:47

标签: asp.net

我有两个清单,想要知道哪个项目在第一个项目中,哪个项目在第二个项目中,

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}。

5 个答案:

答案 0 :(得分:1)

var newList= viewphonenumid.Except(DtoPhonenumId).ToList();

您也可以指定比较器。

http://msdn.microsoft.com/library/bb336390(v=vs.110).aspx

答案 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有一个非常好的算法。