Object 将具有未知值类型的对象数组强制转换为双精度

Object 将具有未知值类型的对象数组强制转换为双精度,object,types,casting,double,Object,Types,Casting,Double,我正在写一个四分位函数,我被这个问题困住了。我正在提取一个类型和长度未知的数组,但我需要将其转换为双精度数组 这是我当前的代码,可编译但引发无效的强制转换异常: double[]array1=array.Cast().ToArray() 任何帮助都将不胜感激,提前感谢。最简单的方法是: double[] array1 = array.OfType<double>().ToArray(); double[]array1=array.OfType().ToArray(); 您需要使用

我正在写一个四分位函数,我被这个问题困住了。我正在提取一个类型和长度未知的数组,但我需要将其转换为双精度数组

这是我当前的代码,可编译但引发无效的强制转换异常:

double[]array1=array.Cast().ToArray()


任何帮助都将不胜感激,提前感谢。

最简单的方法是:

double[] array1 = array.OfType<double>().ToArray();
double[]array1=array.OfType().ToArray();

您需要使用System.Linq添加
到文件顶部,以便编译。

某些类型无法转换为
double
。例如,一个
System.Drawing.Rectangle
数组或一个
System.Windows.Controls.Button
数组应该发生什么?请在你的问题中解释这一点,这样我们可以为你指出正确的方向。我只需要数组中的双值,所以如果我遍历数组。然后把所有的双精度数组放到一个列表中,得到这个列表后,我就可以把这个列表转换成双精度数组。这可能吗?我想我可能需要做一个foreach循环?你能告诉我这段代码是什么样子的吗?创建一个列表,在对象数组中循环以获取所有的double并将其放入一个double数组中。这就是我目前的情况:我仍然有错误,是否仍然可以工作:list doubleobjects=new list();foreach(数组中的双对象){try{doubleobjects.Add(obj);}catch(Exception ex){//messageBox.Show(ex.Message);}}}double[]array2=array.Cast().ToArray()@user1441726否,如果
数组
包含无法转换或转换为
双值的项,则这可能无法工作。从您上面的评论(关于这个问题),我想您只想提取那些
双值的项,这就是我的代码片段所做的。