List has a lot of elements but index of object in the list returns -1.

I am trying to make AtmRushClone and I stuck on object stacking.I pick up the moneys than destroy moneys when objects hit the obstacles. But object index returns -1 before list is empty. I am getting “Index was out of range must be non negative unity” error.


using System;
using UnityEngine;
using Random = UnityEngine.Random;

public class JewelSeparationController : MonoBehaviour
{
    [SerializeField] private PlayerMovement playerMovement;

    private void Start()
    {
        playerMovement = GetComponent<PlayerMovement>();
        playerMovement = FindObjectOfType<PlayerMovement>();
    }

    private void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.CompareTag("Atm"))
        {
        }
        
        else if (other.gameObject.CompareTag("Obstacle"))
        {
            JewelSeparation(JewelCollectorController._jewels.IndexOf(gameObject));
        }
    }


    private void JewelSeparation(int jewelIndex)
    {
        if (jewelIndex == JewelCollectorController._jewels.Count - 1)
        {
            JewelCollectorController._jewels.Remove(JewelCollectorController._jewels[jewelIndex]);
            Destroy(gameObject);
        }
        
        else if (jewelIndex < 0)
        {
            playerMovement.speedZ = 0f;
        }
        
        else
        {            
            for (int i = JewelCollectorController._jewels.Count - 1; i > jewelIndex; i--)
            {
                JewelCollectorController._jewels*.gameObject.tag = "CollectableMoney";*

JewelCollectorController._jewels*.transform.position = new Vector3(
JewelCollectorController._jewels.transform.position.x + Random.Range(3f, 6f),
JewelCollectorController._jewels.transform.position.y,
JewelCollectorController._jewels.transform.position.z + Random.Range(5f, 9f));*

Destroy(JewelCollectorController.jewels*.GetComponent());
Destroy(JewelCollectorController._jewels.GetComponent());
JewelCollectorController._jewels.GetComponent().isTrigger = true;
JewelCollectorController._jewels.Remove(JewelCollectorController._jewels);*

}
JewelCollectorController._jewels.Remove(JewelCollectorController._jewels[jewelIndex]);
Destroy(gameObject);
}
}
}_

What index? at whar line occurs?

Only solution is to debbug while runnig… and check when , where adn why it becomes -1