finding valid targets in range

in my game the player has a melee attack. At the moment the way i check for valid targets is the following. But how do i remove dead/destroyed stuff from the list? And is there maybe a better alltogether to find valid target in a certain range? Maybe a way without a triggerCollider (no clue how to do that, though)

void OnTriggerEnter2D (Collider2D other){
	BaseShotableObject v = other.GetComponent<BaseShotableObject> ();
	victims.Add (v);
	Debug.Log ("entered in melee" + v.ToString());
}
void OnTriggerExit2D (Collider2D other){
	BaseShotableObject v = other.GetComponent<BaseShotableObject> ();
	victims.Remove (v);
}

You could add a boolean to the BaseShotableObject component for tracking whether the object is dead/destroyed. Then your first function would look like this:

void OnTriggerEnter2D (Collider2D other){
     BaseShotableObject v = other.GetComponent<BaseShotableObject> ();

     if(v.IsDead)
           return;

     victims.Add (v);
     Debug.Log ("entered in melee" + v.ToString());
 }