title: Attempt to convert object[] to ValueType[] at runtime
body: <p>Is it possible to convert an object[] to a value type such as double[] when the value type is only known at runtime?  An exception is perfectly acceptable if an object in object[] cannot be converted to the value element type (say double) using the .net built-in conversions.</p>
  
  <pre><code>var original = new object[] { 1 , 2 , 3 , 4 , 5 , 6 }
  Type resultType = typeof( double[] ); // or any means of getting a type at runtime
  var result = ??
  </code></pre>
  
  <p>The following attempts have failed:</p>
  
  <pre><code># error: Object must impliment IConvertible
  Convert.ChangeType( original , resultType );
  
  # error: Object cannot be stored in an array of this type.
  var result = Array.CreateInstance( resultType , original.Length );
  for ( int i = 0 ; i &lt; original.Length ; i++ )
  {
      result.SetValue( Convert.ChangeType( original[ i ] , resultType.GetElementType() ) , i );
  }
  </code></pre>