jak porównać ciąg z enum w C #

string strName = "John";
public enum Name { John,Peter }

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

     }

case2:
     if(myname == Name.John) //compilation error
     {

     }

case3:
     if(myname.Equals(Name.John.ToString()) //returns true (correct comparision)
     {

     }
}

kiedy używam.Equals jest to porównanie odniesienia i kiedy używam== oznacza porównanie wartości.

Czy istnieje lepszy kod zamiast konwertowania wartości wyliczeniowej naToString() dla porownania? ponieważ niszczy cel typu wyliczenia wartości, a także,ToString() na enum jest przestarzałe?

questionAnswers(4)

yourAnswerToTheQuestion