¿Cómo agregar cláusulas dinámicas 'where' a una consulta de linq?

Tengo una tabla de usuario con una máscara de bits que contiene los roles del usuario. La siguiente consulta de linq devuelve todos los usuarios cuyos roles incluyen 1, 4 o 16.

var users = from u in dc.Users
            where ((u.UserRolesBitmask & 1) == 1)
               || ((u.UserRolesBitmask & 4) == 4)
               || ((u.UserRolesBitmask & 16) == 16)
            select u;

Me gustaría volver a escribir esto en el método que aparece a continuación para que todos los usuarios de los roles dados vuelvan a usarlo:

private List<User> GetUsersFromRoles(uint[] UserRoles) {}

¿Algún indicador sobre cómo construir dinámicamente mi consulta? Gracias

Respuestas a la pregunta(6)

Su respuesta a la pregunta