gpt4 book ai didi

C# 将数组类型的对象转换为 T,其中 T 是数组?

转载 作者:行者123 更新时间:2023-11-30 15:45:08 24 4
gpt4 key购买 nike

如果我能让一个对象到数组的转换正常工作,那就太好了。

步骤:

  1. 我们从外部源传递了一个数组。该数组装在一个对象中。通常对象是 int[] 或 double[],但我们通常需要 double[]。
  2. 将其转换为类型 T 的数组。
  3. 返回转换后的类型。

对于初学者来说,这很好用

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com