[英]Casting generic type list to specific type list
I have a generic method 'GetSomeData' that returns a list. 我有一个通用方法'GetSomeData',它返回一个列表。 I can be a list of int, double, uint... 我可以是int,double,uint的列表...
public void GenericMethod<T>()
{
List<T> genericList = GetSomeData<T>();
List<double> castedList1 = (List<double>) genericList;
List<double> castedList2 = genericList.Cast<double>(); //Not working
List<double> castedList3 = genericList.Select(f => (double)f).ToList(); //not working
}
T can be int, uint, double... T可以是int,uint,double ...
Is there a way to cast this list? 有没有一种方法可以投射此列表?
尝试这个 :
List<double> castedList3 = genericList.OfType<double>().ToList();
This works fine, but may have runtime exceptions if T
can't be casted to double
这可以正常工作,但是如果不能将T
强制转换为double
,则可能会出现运行时异常
public void GenericMethod<T>() where T : struct
{
List<T> genericList = GetSomeData<T>();
IList<double> doubleList = genericList.Select(val => Convert.ToDouble(val))
.ToList();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.