Environmental variables, sort of (if they are global). Aliases, no (different name space).
for environmental variables you end up having to do a chain operation...
Something like a csh "wrapper" script:
source <csh script of your choice>
Then, to invoke it you do "exec wrapper".
What happens is the exec changes the current shell to csh (which inherets the bash environment variables) to run the wrapper script, the wrapper then includes the csh script which sets up any exported environment variables. Once that is done, the wrapper script then execs bash - which inherets the updated environment.
This is a bit clumsy, but would work for anything other than functions or aliases (which are not passed in the global environment variables - they are for subshells, not processes).
PS. Not sure how well this would work in bashrc - as once you exec the csh, the current shell context will no longer exist.