Removing from a list

I have a list of Transforms of enemies that a healer will heal. However, at times the player will kill and enemy and then I need to remove him from the list. I attempted the following approach:

		if (canHeal && !playerWithinRange ) {
			CheckDistance ();
			if (enemyToHealDistance < distanceCanHeal) {
				CheckNullList();
				_healTarget = healGroup[Random.Range (0, healGroup.Count)];
				goblinAlertEnemyHeal.enemyToHeal = _healTarget.gameObject;				
				StartCoroutine ("HealTiming");
			}
			else {
				CheckNullList();
				_healTarget = healGroup[Random.Range (0, healGroup.Count)];
				goblinAlertEnemyHeal.enemyToHeal = _healTarget.gameObject;
				_state = State.GotoEnemyToHeal;
			}
		}
	}
	
	int _listCntr;
	void CheckNullList() {
		_listCntr = 0;
		foreach (Transform bob in healGroup) {
			Debug.Log (bob.name);
			if (bob != null)
				return;
			else {
				healGroup.Remove (bob);
				healGroup.RemoveAt (_listCntr);
			}
		}
	}

I am thinking that when the player kills the enemy and destroys the object, that position in the list should be null. But, it doesn’t turn null and I’m getting the error :

“MissingReferenceException: The object of type ‘Transform’ has been destroyed but you are still trying to access it.” at
goblinAlertEnemyHeal.enemyToHeal = _healTarget.gameObject;

I have a few ideas that might take a while to get it working, but I thought this approach would be the easiest.

Does anyone know how I can turn that missing reference into something I can check for and remove from the list?

thanks

You need to remove the goblin from the list before you destroy the GamObject in order to prevent problems.

Is it an Array or a List?

For an array, manually set the position in the list to null.

For a List, call List.Remove(objectToRemove);