how to compare string with enum in C#

前端 未结 6 1829
自闭症患者
自闭症患者 2020-12-03 13:07
string strName = \"John\";
public enum Name { John,Peter }

private void DoSomething(string myname)
{
case1:
     if(myname.Equals(Name.John) //returns false
     {
         


        
6条回答
  •  北海茫月
    2020-12-03 14:03

    You can parse the string value and do enum comparisons.

    Enum.TryParse: See http://msdn.microsoft.com/en-us/library/dd783499.aspx

    Name result;
    if (Enum.TryParse(myname, out result))
    {
        switch (result)
        {
            case Name.John:
                /* do 'John' logic */
                break;
            default:
                /* unexpected/unspecialized enum value, do general logic */
                break;
        }
    }
    else 
    {
        /* invalid enum value, handle */
    }
    

    If you are just comparing a single value:

    Name result;
    if (Enum.TryParse(myname, out result) && result == Name.John)
    {
         /* do 'John' logic */
    }
    else 
    {
        /* do non-'John' logic */
    }
    

提交回复
热议问题