0

如果我有:

List<String> list1  AND  List<String> list2

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

4

2 回答 2

2

您可以使用 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
于 2012-08-19T06:19:59.910 回答
1

如果你真的只有 .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.

于 2012-08-19T06:48:34.793 回答