Doubt about assigning array of enum, any advice?

I have some doubt about this way of assigning array of enum like in City1.possibleHairColor. if i define value of enum array at class-member-variable-area is it possible that i will accidentally use value of not yet assigned enum HairColor in possibleHairColor?

(in city1 script i want to make a variable that store value of some character hair. while in character.hair color is the full list hair color.)

public class Character
{
	public enum HairColor
    {
        Custom,
        Black,
        Gray,
        Brown,
        Red
    }
}

public class City1
{
	public List<Character.HairColor> possibleHairColor = new()
    {
        Character.HairColor.Custom,
        Character.HairColor.Black,
        Character.HairColor.Gray,
	    //not using brown in this city.
        Character.HairColor.Red
    };
}

An enumerator is prepared before any scripts are run that might depend on it. Similarly, the enumerator itself is not an instance of anything; the values are effectively just compiler-level constants.

In other words, the enumerator values themselves cannot be null, and C# rules would result in a compiler error if you tried to use a value that doesn’t actually exist in the enumerator.

// Valid
public Character.HairColor colorA = Character.HairColor.Black;

// Invalid, will not compile because the specified HairColor
// enumerator value does not currently exist
public Character.HairColor colorB = Character.HairColor.Chartreuse;