How to find IndexOf vector3 List ? position search

Hi community

I got a problem to find the index number of an vector3 list.
Inside the vector are gameobject’s with their position.

rotesSpielFeld = new List<Vector3>();
        rotesSpielFeld.Add(GameObject.Find("SFeld1").transform.position);
        ....
        rotesSpielFeld.Add(GameObject.Find("SFeld40").transform.position);

The list got 40 fields.

Then I got a function to change position of the player (which should only move on the positions inside the list)

public void positionWechsel()
    {
     diceValue= GameObject.Find("Würfel").GetComponent<AktuellerWürfelWert>().aktuellerWert;
numberOfIndex= GameObject.Find("gameController").GetComponent<gameController>().rotesSpielFeld.IndexOf(GameObject.Find("SpielerR1").transform.position);
// Debug.Log says here the indexNumber is -1 

//put the player on the new position from indexNumber + diceValue
GameObject.Find("gameController").GetComponent<gameController>().aktuellePosiR1 = GameObject.Find("gameController").GetComponent<gameController>().rotesSpielFeld[numberOfIndex+ diceValue]; 

Can someone Help me please?

numberOfIndex= GameObject.Find(“gameController”).GetComponent().rotesSpielFeld.FindIndex( d=>d == GameObject.Find(“SpielerR1”).transform.position);

GameObject.Find("SpielerR1").transform.position =  GameObject.Find("gameController").GetComponent<gameController>().rotesSpielFeld[numberOfIndex+ diceValue];

That’s because you don’t have the actual player transform.position reference in your rotesSpielFeld - only another Vector3 Object with the same values - you would need to do a compare within a loop. Like so:

var theIndex = -1;
var myList = GameObject.Find("gameController").GetComponent<gameController>().rotesSpielFeld;
var playerPos = GameObject.Find("SpielerR1").transform.position;
for ( int i = 0; i < myList.Length; i++ )
{
	if ( ( myList[ i ] - playerPos ).magnitude == 0f )
	{
		theIndex = i;
		break;
	}
}

(untested code)