title: RunTime exception on Convert.ChangeType with List<>
body: <p>I am running into a RunTime Exception while trying to run a List (cast as object) through Convert.ChangeType. This is basically the setup:</p>
  
  <pre><code>using System;
  using System.Collections.Generic;
  
  public class Program
  {
      public static void Main()
      {
          List&lt;string&gt; list = new List&lt;string&gt;{ "1", "2", "3"};
          Utils utils = new Utils();
          utils.ChangeType(list, typeof(List&lt;int&gt;));
          Console.WriteLine("Done!");
      }
  }
  
  public class Utils
  {
      public object ChangeType(object obj, Type type)
      {
           return Convert.ChangeType(obj, type);
      }
  }
  </code></pre>
  
  <p>Fiddle <a href="https://dotnetfiddle.net/13Uzx0" rel="nofollow noreferrer">here</a>.</p>
  
  <p>This generates the following exception:</p>
  
  <pre><code>Run-time exception (line 19): Object must implement IConvertible.
  
  Stack Trace:
  
      [System.InvalidCastException: Object must implement IConvertible.]
         at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
         at System.Convert.ChangeType(Object value, Type conversionType)
         at Utils.ChangeType(Object obj, Type type) :line 19
         at Program.Main() :line 10
  </code></pre>
  
  <p>I have no clue how to fix this. I think I should cast object obj in Utils.ChangeType to a list of a generic type if it is a list, but I cannot get that to work.</p>
  
  <p>Does anyone know how to fix this issue?</p>