如何确定一个列表中的哪些项目不在其他列表中?

时间:2012-08-19 06:18:58

标签: c# list visual-studio-2005 set

如果我有:

List<String> list1  AND  List<String> list2

生成包含List<String>中不在list1中的项目的list2的最佳方法是什么?

2 个答案:

答案 0 :(得分:2)

你可以使用linQ,更多关于here

除外
var res = list1.Except(list2);

没有linQ

这样做
List<string> listExcept = new List<string>();
foreach(string list1Item in list1)
{
   if(!list2.Contains(list1Item))
      listExcept.Add(list1Item);
}   
//here listExcept will contain all the elements present in list1 and not present in list2

答案 1 :(得分:1)

如果你真的只拥有.NET 2.0的BCL和C#2的语言功能,那么你就不能使用扩展方法,LINQ,HashSet<>等等。你可能会说:

List<string> resultList = new List<string>();
foreach (string s in list1)
{
  if (!list2.Contains(s))
    resultList.Add(s);
}

效果不会太好。如果这很重要,可以先根据Dictionary<,>创建list2

相关问题