// extremely lame example, but I like the functional aspect of it. // also, combining the bool/func pairs into objects (strategies) might // be a nice way to cordon off the coupling. Oh, and the naming could // much improved, which would help greatly with readability. var use_public_forums = new Dictionary<bool, Func<IEnumerable<Forum>, IEnumerable<Forum>>> { {true, forums => forums.Where(forum => !forum.IsPrivate)}, {false, forums => forums} }; // usage: var other_forums = use_public_forums[includePublic](allForums); var filtered_forums = other_forums.Union(myForums);