When you select, create a new instance of your Variable
type, not an anonymous select :
var Div = (from vp in db.PLANT
select new Variable()
{
ID = vp.PLANT_ID,
GENDER = vp.PLANT_NAME
}).ToList();
Then do the same with your Dep variable :
var Dep = (from vp in db.ANIMAL
select new
{
ID = vp.ANIMAL_ID,
GENDER = vp.ANIMAL_NAME
}).ToList();
And you'll be able to AddRange()
Edit : Your variable need to be in the same scope to be used together.. You should declare them (strongly typed) up top of your function. (thanks andrii.litvinov)
List<Variable> Div;
List<Variable> Dep;