Search code examples
c#enumstype-conversionenum-flags

How to convert from a string to a Flags enum format in C#


I have this enum:

[Flags]
public enum Countries
{
    None    = 0,
    USA     = 1,
    Mexico  = 2,
    Canada  = 4,
    Brazil  = 8,
    Chile   = 16
}

I receive in input strings like these:

string selectedCountries = "Usa, Brazil, Chile";

how to convert it (in C#) back to:

var myCountries = Countries.Usa | Countries.Brazil | Countries.Chile;

Solution

  • Use Enum.Parse.

    e.g. Countries c = (Countries)Enum.Parse(typeof(Countries), "Usa, Brazil...");