我使用2所列出,如何比較兩個列表,並獲得不匹配的項目 - 無需使用LINQ
List<string> localfiles = new List<string>();
List<string> remotefiles = new List<string>();
我需要找到remotefiles,並非localfiles目前所有的新項目。使用LINQ它更容易,但我不能使用Linq,因爲我的應用程序在.net 2.0中。
我使用2所列出,如何比較兩個列表,並獲得不匹配的項目 - 無需使用LINQ
List<string> localfiles = new List<string>();
List<string> remotefiles = new List<string>();
我需要找到remotefiles,並非localfiles目前所有的新項目。使用LINQ它更容易,但我不能使用Linq,因爲我的應用程序在.net 2.0中。
var temp = new List<string>();
foreach(var item in remoteFiles){
if(localfiles.Contains(item) == false){
temp.Add(item);
}
}
//臨時現在包含在remoteFiles不存在於localfiles
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
是查找然後List
更efficient如果你在它超過300項的所有項目:
取決於本地文件的大小,您可能通過創建字典fr獲得更多性能在列表中,所以'查找'將會快得多(即在列表中使用.Contains比在字典中查找鍵要慢),但是會產生創建字典的額外開銷..因此,對於所有內容......'它取決於';-) ...(就像lazyberezovsky建議:-)) – stooboo