title: Don't return ToString, Equals, GetHashCode, GetType with Type.GetMethods()
body: <p>Given some classes like this:</p>
  
  <pre><code>public class MyBaseClass()
  {
      public void MyMethodOne()
      {
      }
  
      public virtual void MyVirtualMethodOne()
      {
      }
  }
  
  public class MyMainClass : MyBaseClass()
  {
      public void MyMainClassMethod()
      {
      }
  
      public override void MyVirtualMethodOne()
      {
      }
  }
  </code></pre>
  
  <p>If I run the following:</p>
  
  <pre><code>var myMethods= new MyMainClass().GetType().GetMethods();
  </code></pre>
  
  <p>I get back:</p>
  
  <ul>
  <li>MyMethodOne</li>
  <li>MyVirtualMethodOne</li>
  <li>MyMainClassMethod</li>
  <li>ToString</li>
  <li>Equals</li>
  <li>GetHashCode</li>
  <li>GetType</li>
  </ul>
  
  <p>How can I avoid the last 4 methods being returned in <code>myMethods</code></p>
  
  <ul>
  <li>ToString</li>
  <li>Equals</li>
  <li>GetHashCode</li>
  <li>GetType</li>
  </ul>
  
  <p><strong>EDIT</strong></p>
  
  <p>So far, this hack is working, but was wondering if there was a cleaner way:</p>
  
  <pre><code>        var exceptonList = new[] { "ToString", "Equals", "GetHashCode", "GetType" };
          var methods = myInstanceOfMyType.GetType().GetMethods()
              .Select(x =&gt; x.Name)
              .Except(exceptonList);
  </code></pre>