如果我能让一个对象到数组的转换正常工作,那就太好了。
步骤:
- 我们从外部源传递了一个数组。该数组装在一个对象中。通常对象是 int[] 或 double[],但我们通常需要 double[]。
- 将其转换为类型 T 的数组。
- 返回转换后的类型。
对于初学者来说,这很好用
double[] r=Array.ConvertAll<int,double>((int[])o,Convert.ToDouble)
但这不是(假设 T 是“double”),例如双[] R=getValue(o);
public T[] getValue<T>(object o){
// ... some logic...
return (T[])Array.ConvertAll<int,double>((int[])o,Convert.ToDouble)
是否有可以使用的 where 约束?数组是一个“特殊对象”,因此我们不能将其用作约束条件。
这在 .net 中是否可以不借助 IL 而实现?如果我们真的求助于 IL,有可能吗?
谢谢, -史蒂文
最佳答案
这对我有用:
public T[] GetValue<T>(object o)
{
Converter<int, T> c = new Converter<int, T>(input => (T)System.Convert.ChangeType(input, typeof(T)));
return (T[])Array.ConvertAll<int, T>((int[])o, c);
}
希望对您有所帮助!
关于C# 将数组类型的对象转换为 T,其中 T 是数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5484948/