title: Restrict generic extension method from extending strings
body: <p>I have a very generic extension method to show any type of list within a console:</p>
  
  <pre><code>public static void ShowList&lt;T&gt;(this IEnumerable&lt;T&gt; Values)
  {
      foreach (T item in Values)
      {
          Console.WriteLine(item);
      }
  }
  </code></pre>
  
  <p>Not when I have a <code>string</code> I can use this Method </p>
  
  <pre><code>string text = "test";
  text.ShowList();
  </code></pre>
  
  <p>But in case of <code>string</code> it doesn't make sense in my application. </p>
  
  <p>How can I exclude <code>string</code> from this method? I've read something about </p>
  
  <pre><code>ShowList&lt;T&gt;(this IEnumerable&lt;T&gt; Values): Where != string //doesn't work
  </code></pre>