如何分解运营商?

时间:2012-04-25 23:35:51

标签: c# refactoring operators

这可能很简单,但是已经很晚了......我有两种方法:

public IQueryable<Post> GetNotSticky()
{
   return Get().Where(p => p.Type != PostType.Sticky);
}

反向

public IQueryable<Post> GetSticky()
{
   return Get().Where(p => p.Type == PostType.Sticky);
}

如您所见,运营商是唯一的区别。如何将这种DRY违规分解为一个很好的常用方法?感觉很简单,但现在解决方案让我望而却步。

1 个答案:

答案 0 :(得分:4)

public IQueryable<Post> GetWithSticky(bool isSticky)
{
   return Get().Where(p => (p.Type == PostType.Sticky) == isSticky);
}