Skip to content

Instantly share code, notes, and snippets.

@kibiz0r
Created April 12, 2012 20:32
Show Gist options
  • Save kibiz0r/2370783 to your computer and use it in GitHub Desktop.
Save kibiz0r/2370783 to your computer and use it in GitHub Desktop.
public class LessThanOrEqualFilterRule : IFilterRule
{
public IEnumerable<Widget> Filter(IEnumerable<Widget> widgets)
{
return widgets.Where(w => w.foo <= 100);
}
}
public class EqualFilterRule : IFilterRule
{
public IEnumerable<Widget> Filter(IEnumerable<Widget> widgets)
{
return widgets.Where(w => w.bar == <no idea what baz is>);
}
}
public class FilterChooser
{
public IFilterRule ChooseFilter(bool b)
{
return b ? lessThanOrEqualFilterRule : equalFilterRule; // populated via DI
}
}
// ...
var filter = filterChooser.ChooseFilter(b);
var widgets = filter.Filter(q);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment