Finding the index of the min value in the list

Hi,
I need to find the closest pathway-node to the game object. for that I create a list of distances to all nodes and finding the min distance. However I don’t know how to get the index of that node.

private void CurrentNode()
    {
        List<float> distances = new List<float>();

        for (int i = 0; i< nodes.Count; i++)
        {
            float distanceToNode = Vector3.Distance(this.transform.position, nodes*.position);*

distances.Add(distanceToNode);
var minDistance = Mathf.Min(distances.ToArray());
}
}
After this stage I need to find the index of the node with min distance but I have no idea how to do it. I’ll be thankful for any ideas!

private void CurrentNode()
{
int minIndex = 0;
int minDistance = Mathf.Infinity;

     for (int i = 0; i< nodes.Count; i++)
     {
         float distanceToNode = (transform.position - nodes*.position).sqrMagnitude;*

if(distanceToNode < minDistance)
{
minDistance = distanceToNode ;
minIndex = i ;
}
}
Debug.Log("Closest node: " + i + " - distance = " + minDistance);
}