c#中在循环外初始化的集合数据。在for循环内调用其他脚本的方法,传递集合中的某个元素。为什么在执行第1次循环时,正常读取到集合中的元素,在第2次循环时,集合数据变为空了?

具体情况看如下代码:targets 数据在循环外初始化。循环内将targets中的数据传递给skillEffect_Algorithm.Apply_SkillEffect脚本中的某个方法。当内循环 a=0时,正常读取到targets的数据。当a=1时,targets的数据的元素变为0个了,请解释下这是什么原因造成的?

            if (targetType.Count == 1)  //全部技能效果的作用目标相同
            {
                List<Fight_Character> targets = skillTarget_Algorithm.GetSkiilTargets(fight_Control, self_character, skill_Effects[0].targetType, skill_Effects[0].targetNum); //获取技能效果的作用目标

                for (int i = 0; i < targets.Count; i++)//给每个目标依次施加全部技能效果
                {
                    if (skillEffect_Algorithm.AttackIsOK(self_character, targets[i])) //如果普攻成功命中
                    {
                        for (int a = 0; a < skill_Effects.Count; a++)
                        {
                            skillEffect_Algorithm.Apply_SkillEffect(self_character, targets[i], skill_Effects[a]);
                        }
                    }
                    else
                    {
                        print("未命中");
                        //显示闪避UI
                        //to do
                    }
                }
            }

@ada; 你能帮忙么?