如果我有:
List<String> list1 AND List<String> list2
生成List<String>
包含不在其中的项目list1
的最佳方法是list2
什么?
如果我有:
List<String> list1 AND List<String> list2
生成List<String>
包含不在其中的项目list1
的最佳方法是list2
什么?
您可以使用 linQ 来完成,更多关于这里除外
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
如果你真的只有 .NET 2.0 的 BCL 和 C# 2 的语言特性,那么你就不能使用扩展方法、LINQHashSet<>
和类似的东西。你可能会说:
List<string> resultList = new List<string>();
foreach (string s in list1)
{
if (!list2.Contains(s))
resultList.Add(s);
}
它不会表现得太好。如果这很重要,也许首先创建一个Dictionary<,>
基于list2
.