如何比较两个列表并获得不匹配的项目 - 不使用LINQ

时间:2013-04-16 06:36:44

标签: c# list

我正在使用2个列表,

List<string> localfiles = new List<string>();

List<string> remotefiles = new List<string>();

我需要在localfiles中找不到remotefiles中的所有新项目。使用LINQ它更容易,但我不能使用Linq,因为我的应用程序在.net 2.0中。

2 个答案:

答案 0 :(得分:5)

Dictionary<string, bool> files = new Dictionary<string, bool>();
foreach (var file in localfiles)
    if (!files.ContainsKey(file))
        files.Add(file, false);

List<string> result = new List<string>();
foreach (var file in remotefiles)
    if (!files.ContainsKey(file))
        result.Add(file);

Dictionary更多efficient用于查找List,如果您有超过3个项目:

enter image description here

答案 1 :(得分:0)

var temp = new List<string>();
foreach(var item in remoteFiles){
  if(localfiles.Contains(item) == false){
     temp.Add(item);
  }
}

// temp现在包含remoteFiles中localfiles中不存在的所有项目