Any idea for find certain string in string[] ?

I’m still a begginer and I wanted to move player to certain door depend on which scene he came from so I created this code below.

{

public string[] doorlist;
public GameObject[] spawnposition;
public static string PreviousLevel { get; private set; }
public GameObject player;

void Awake()
{
    player = GameObject.FindWithTag("Player2");
}

private void OnDestroy()
{
    PreviousLevel = gameObject.scene.name;
}

private void Start()
{
    Debug.Log(PreviousLevel);
    if (PreviousLevel == doorlist[0])
    {
        player.transform.position = spawnposition[0].transform.position;
    }
    if (PreviousLevel == doorlist[1])
    {
        player).transform.position = spawnposition[1].transform.position;
    }
    if (PreviousLevel == doorlist[2])
    {
        player.transform.position = spawnposition[2].transform.position;
    }
    if (PreviousLevel == doorlist[3])
    {
        player.transform.position = spawnposition[3].transform.position;
    }
    if (PreviousLevel == doorlist[4])
    {
        player.transform.position = spawnposition[4].transform.position;
    }
    if (PreviousLevel == doorlist[5])
    {
        player.transform.position = spawnposition[5].transform.position;
    }
    if (PreviousLevel == doorlist[6])
    {
        player.transform.position = spawnposition[6].transform.position;
    }
    if (PreviousLevel == doorlist[7])
    {
        player.transform.position = spawnposition[7].transform.position;
    }
    if (PreviousLevel == doorlist[8])
    {
        player.transform.position = spawnposition[8].transform.position;
    }
    if (PreviousLevel == doorlist[9])
    {
        player.transform.position = spawnposition[9].transform.position;
    }
    if (PreviousLevel == doorlist[10])
    {
        player.transform.position = spawnposition[10].transform.position;
    }
    if (PreviousLevel == doorlist[11])
    {
        player.transform.position = spawnposition[11].transform.position;
    }
    if (PreviousLevel == doorlist[12])
    {
        player.transform.position = spawnposition[12].transform.position;
    }
    if (PreviousLevel == doorlist[13])
    {
        player.transform.position = spawnposition[13].transform.position;
    }

}

And I made the size of public string ‘14’ since there are 14 doors. It works fine but I keep thinking that I’m doing something wrong here cause my code looks messy obviously and it keeps getting longer as the game developed.

So I thought instead of using if (PreviousLevel == doorlist[0]) , maybe I should check if string doorlist has ‘PreviousLevel’ in it, and if it has than I should find what number it is and move player to spawnposition that has the same number.

Again I’m really new to this thing sorry my code is a mess, and is there any way to find a certain string in string? And if there isn’t, any suggestion that i could try out?

Hi!

You can use “for” loops to simplify that big lookup, checking all 14 doors would look like this:

for (int i = 0; i < doorlist.Length; i++)
{
    if (PreviousLevel == doorlist*)*

{
player.transform.position = spawnposition*.transform.position;*
}
}
The first line defines how it will loop through, namely it will start at zero int i = 0;, and keep counting up i++ as long as i < doorlist.Length;
Basically, if doorlist has fourteen items, it will do the code in the loop fourteen times, with i being every number from 0 to 13 (inclusive).
Hope this helps!