如果我有:
List<String> list1 AND List<String> list2
生成包含List<String>
中不在list1
中的项目的list2
的最佳方法是什么?
答案 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
。