Yes, this can be done in one line:
lstAllMonsters = dsAllMonsters.Tables[0].Rows.Cast<DataRow>().Select(row => row["pokemonId"].ToString()).ToList();
But sometimes two lines are better than one. I think you will find this more readable:
var rows = dsAllMonsters.Tables[0].Rows.Cast<DataRow>(); lstAllMonsters = rows.Select(row => row["pokemonId"].ToString()).ToList();
source share