If I can implicitly cast an integer value to a double, like:
int a = 4;
double b = a;
// now b holds 4.0
Why can I not do this:
Well, you have incorrect expectations of Cast, that's all - it's meant to deal with boxing/unboxing, reference and identity conversions, and that's all. It's unfortunate that the documentation isn't as clear as it might be :(
The solution is to use Select:
doubleNumbers2 = intNumbers.Select(x => (double) x).ToArray();