c# – 比较两个列表并删除相同的最有效方法

我想比较两个列表并将有效的单词放入新列表中.

var words = new List<string>();
var badWords = new List<string>();

//this is just an example list. actual list does contain 700 records
words.Add("Apple");
words.Add("Moron");
words.Add("Seafood");
words.Add("Cars");
words.Add("Chicken");
words.Add("Twat");
words.Add("Watch");
words.Add("Android");
words.Add("c-sharp");
words.Add("Fool");

badWords.Add("Idiot");
badWords.Add("Retarded");
badWords.Add("Twat");
badWords.Add("Fool");
badWords.Add("Moron");

我正在寻找最有效的方法来比较列表并将所有“好”的单词放入新的列表中. finalList不应包含“Moron”,“Twat”和“Fool”.

var finalList = new List<string>();

或者是否没有必要创建新的列表?我很高兴听到你的想法!

先感谢您

最佳答案
使用存储在System.Linq命名空间中的EnumerableExcept函数

finalList = words.Except(badWords).ToList();

最节省时间的最有效方法也是最快速的方法,因为除了实现使用Set,这很快

转载注明原文:c# – 比较两个列表并删除相同的最有效方法 - 代码日志