【发布时间】:2018-11-02 06:24:36
【问题描述】:
尝试像这样投射
Products1 = (IList<ProductInfo>)basicProfile.Products2.Select(ToProductInfo)
Products1 是一个
public IList<ProductInfo> Products { get; set; }
Product2 是一个
public IList<Product> Products { get; }
这是我对 Product2 的每个元素应用的方法
internal static ProductInfo ToProductInfo(Product product)
{
if (product == null)
{
return null;
}
return new ProductInfo
{
Id = product.Id,
EffectiveTimestamp = product.EffectiveTimestamp,
ExpiryTimestamp = product.ExpiryTimestamp
};
}
Product 和 ProductInfo 结构相同,几乎完全相同
我发现了这个
System.InvalidCastException : Unable to cast object of type
'SelectArrayIterator`2[Domain.Product,WebApi.Contracts.ProductInfo]' to type
'System.Collections.Generic.IList`1[WebApi.Contracts.ProductInfo]'.
而且它甚至没有进入 ToProductInfo 方法
【问题讨论】:
-
Simpy 调用
ToList而不是强制转换,因为Select将返回IEnumerable<T>,而不是List<T>。