无法隐式转换类型';System.Collections.Generic.IEnumerable<;匿名类型#
本文关键字:类型 IEnumerable Generic lt Collections System 转换 | 更新日期: 2023-09-27 18:01:15
我已经定义了自己的模型类MyModel.Customer
我在使用<T>
而不是直接Model类的方法中遇到了转换问题。
public IEnumerable<T> MyMethod<T>() where T : class
{
// my method code
}
获取运行时错误:
base=(14,8(:错误CS0266:无法隐式转换类型
'System.Collections.Generic.IEnumerable<MyModel.Customer>'
至'System.Collections.Generic.IEnumerable<T>'
。显式转换存在(你错过了一个演员阵容吗?(
为什么会这样?有线索吗?
你想这样做吗:
public static IEnumerable<T> MyMethod<T>() where T : class
{
// my method code
List<Customer> customers = new List<Customer>()
{
new Customer(), new Customer(), new Customer()
};
return customers;
}
这样不行。。。
您应该显式强制转换集合中的每个元素。
public static IEnumerable<T> MyMethod<T>() where T : class
{
List<T> resultList = new List<T>();
List<Customer> customers = new List<Customer>()
{
new Customer(), new Customer(), new Customer()
};
for(int i = 0; i < customer.Count; i++)
resultList.Add(customers[i] as T); // attempt to cast here
return resultList;
}