Enemy wave and Tag question

I already have enemy waves appearing and all, im just wondering wats the best way to spawn new enemies and all when u have 50 stages for example; basically dont want 50 different if statements in row u know?

//Create Level 1 monsters
if(LevelAndMonsterSpawnControl.StageNumber == 1)
{
	CreateFlyers();
	CreateZombies();
}
//Create Level 2 monsters
if(LevelAndMonsterSpawnControl.StageNumber == 2)
{
    //more code
}

etc… and 2nd question is: is there a way to group tags, i mean i got something like

	if ((BulletCollision.tag == "Zombie_Small") || (BulletCollision.tag == "Flyer_Small")
	   || (BulletCollision.tag == "Zombie_Med") || (BulletCollision.tag == "Flyer_Med")
	   || (BulletCollision.tag == "Zombie_Large") || (BulletCollision.tag == "Flyer_Large")
	   || (BulletCollision.tag == "Splitter") || (BulletCollision.tag == "SplitterBreak1") 
	   || (BulletCollision.tag == "SplitterBreak2"))
	{
		Destroy(gameObject);
	}

knowing thats only gonna get longer, how can i make this simpler?

That’s an easier way to compare a tag to several options at once: use some separator character and search for the tag in a string using IndexOf (a javascript function used to search a substring inside a string: it returns the substring position in the string, or -1 if not found). Let’s use # as the separator:

    var tag = "#"+BulletCollision.tag+"#"; // surround the tag with the separator char
    // the tag table items must be surrounded by separators too
    var tags = "#Zombie_Small#Flyer_Small#Zombie_Med#Flyer_Med#Zombie_Large#Flyer_Large#Splitter#SplitterBreak1#";
    if (tags.IndexOf(tag) >= 0){ // if tag is found, IndexOf returns a number >= 0
        Destroy(gameObject);
    }

I had the same problem here is a link to the question i asked and this is amazing