我有一个写作者列表。
public class Writers{
long WriterID { get;set; }
}
我也有两个类型为文章(Article)的列表。
public class Article{
long ArticleID { get; set; }
long WriterID { get; set; }
//and others
}
所以我现有的代码是:
List<Article> ArticleList = GetList(1);
List<Article> AnotherArticleList = AnotherList(2);
List<Writers> listWriters = GetAllForbiddenWriters();
我想从ArticleList
,AnotherArticleList
中删除那些WriterID
与listWriters
中的WriterID
匹配的记录。如何在LINQ中实现?
Contains
不需要遍历整个集合。它执行哈希查找,其时间复杂度为 O(1),而不是 O(n)。此外,在每次迭代中,您也不必获取每个 Writer 的属性。就清晰度而言,我认为将“被禁止”的作者视为一个集合而不是列表更好,因为顺序不重要,我们通过 ID 查找 它们,这就是我们关心的全部。 - Jon Skeet