C# 无法隐式转换类型System.Collection.Generic.IEnumberable
我在Linq声明中收到此错误--- 无法将类型“System.Collections.Generic.IEnumerable”隐式转换为“hcgames.ObjectClasses.ShoppingCart.shoppingcartaddon”。存在显式转换(是否缺少强制转换?) 从这个查询C# 无法隐式转换类型System.Collection.Generic.IEnumberable,c#,asp.net,linq,C#,Asp.net,Linq,我在Linq声明中收到此错误--- 无法将类型“System.Collections.Generic.IEnumerable”隐式转换为“hcgames.ObjectClasses.ShoppingCart.shoppingcartaddon”。存在显式转换(是否缺少强制转换?) 从这个查询 ShoppingCartItems items = Cart.GetAllItems(); ShoppingCartCartAddons addons = Cart.GetA
ShoppingCartItems items = Cart.GetAllItems();
ShoppingCartCartAddons addons = Cart.GetAllAddons();
var stuff = from x in items
select new ShoppingCartItem()
{
ProductID = x.ProductID,
Quantity = x.Quantity,
Name = x.Name,
Price = x.Price,
Weight = x.Weight,
Addons = (from y in addons
where y.ShoppingCartItemID == x.ID
select y)
};
我不知道如何正确地投下这个。有什么建议吗
谢谢你的帮助 我在黑暗中拍摄,因为我不知道什么类型
ShoppingCartItem.Addons
,但从错误判断,我想说它期望的类型是hcgames.ObjectClasses.ShoppingCart.shoppingCartAddon
您的LINQ查询正在变成
IEnumerable
。你可以将.FirstOrDefault()
添加到LINQ查询中,看看这是否能解决问题。由于我不知道ShoppingCartItem.Addons
是什么类型,所以我一直在暗中拍摄,但从错误判断,我认为应该是hcgames.ObjectClasses.ShoppingCart.ShoppingCartAddon
您的LINQ查询正在变成
IEnumerable
。您可以将.FirstOrDefault()
添加到LINQ查询中,以查看这是否会清除问题。考虑到您发布的代码,至少有一种方法可以解决它。由于ShoppingCartAddons集合没有任何其他功能,因此更简单、更不优雅的方法是按如下方式修改您的ShoppingCartItem.Addons
签名:
namespace hcgames.ObjectClasses.ShoppingCart
{
[Serializable]
public class ShoppingCartItem
{
public ShoppingCartItem();
public ShoppingCartItem(DataRow dr);
public IEnumerable<ShoppingCartCartAddon> Addons { get; set; }
public string CartID { get; set; }
public int ID { get; set; }
public string Image { get; set; }
public string Name { get; set; }
public string Price { get; set; }
public long ProductID { get; set; }
public int Quantity { get; set; }
public decimal Weight { get; set; }
}
}
命名空间hcgames.ObjectClasses.ShoppingCart
{
[可序列化]
公共类购物车项目
{
公共购物车项目();
公共购物车项目(DataRow dr);
公共IEnumerable插件{get;set;}
公共字符串CartID{get;set;}
公共int ID{get;set;}
公共字符串图像{get;set;}
公共字符串名称{get;set;}
公共字符串Price{get;set;}
公共长ProductID{get;set;}
公共整数数量{get;set;}
公共十进制权重{get;set;}
}
}
说明:您基本上是在尝试从IEnumerable
初始化Collection
实现,shoppingcartaddons
,因此编译器会出错
否则,您可以为
shoppingcartaddons
定义一个构造函数,它接受IEnumerable
来初始化自身。考虑到您发布的代码,至少有一种方法可以解决它。由于ShoppingCartAddons集合没有任何其他功能,因此更简单、更不优雅的方法是按如下方式修改您的ShoppingCartItem.Addons
签名:
namespace hcgames.ObjectClasses.ShoppingCart
{
[Serializable]
public class ShoppingCartItem
{
public ShoppingCartItem();
public ShoppingCartItem(DataRow dr);
public IEnumerable<ShoppingCartCartAddon> Addons { get; set; }
public string CartID { get; set; }
public int ID { get; set; }
public string Image { get; set; }
public string Name { get; set; }
public string Price { get; set; }
public long ProductID { get; set; }
public int Quantity { get; set; }
public decimal Weight { get; set; }
}
}
命名空间hcgames.ObjectClasses.ShoppingCart
{
[可序列化]
公共类购物车项目
{
公共购物车项目();
公共购物车项目(DataRow dr);
公共IEnumerable插件{get;set;}
公共字符串CartID{get;set;}
公共int ID{get;set;}
公共字符串图像{get;set;}
公共字符串名称{get;set;}
公共字符串Price{get;set;}
公共长ProductID{get;set;}
公共整数数量{get;set;}
公共十进制权重{get;set;}
}
}
说明:您基本上是在尝试从IEnumerable
初始化Collection
实现,shoppingcartaddons
,因此编译器会出错
否则,您可以为
shoppingcartaddons
定义一个构造函数,它接受IEnumerable
来初始化自身。您可以发布shoppingcartaddons
和shoppingcartaddons.Addons
签名吗?命名空间hcgames.ObjectClasses.ShoppingCart{[Serializable]公共类ShoppingCartItem{public ShoppingCartItem();public ShoppingCartItem(DataRow dr);public ShoppingCartAddons插件{get;set;}公共字符串CartID{get;set;}公共int ID{get get;set;}公共字符串图像{get set;}公共字符串名称{get get;set;}公共字符串Price{get;set;}public long ProductID{get;set;}公共int数量{get;set;}公共十进制权重{get;set;}}使用系统;使用System.Collections.ObjectModel;命名空间hcgames.ObjectClasses.ShoppingCart{[Serializable]公共类shoppingcartaddons:Collection{public shoppingcartaddons();}}命名空间hcgames.ObjectClasses.ShoppingCart{[Serializable]公共类shoppingcartaddon{public shoppingcartaddon();public shoppingcartaddon(DataRow dr);public string LabelText{get;set;}public string Name{get;set;}public decimal Price{get;set;}public int ProductAddonID{get;set;}public decimal Quantity{get;set;}public long ShoppingCartAddonID{get;set;}public long ShoppingCartItemID{get;set;}public decimal Weight{get;set;}}}}}}Aight,编辑了我的答案,为了将来参考,您可以编辑您的问题以添加更多详细信息(和闪亮的格式化代码)你可以发布shoppingcartaddons
和shoppingcartimes.Addons
signatures吗?命名空间hcgames.ObjectClasses.ShoppingCart{[Serializable]公共类shoppingcartimes{public shoppingcartimes();公共shoppingcartimes(DataRow dr);public shoppingcartaddons插件{get;set;}公共字符串CartID{get;set;}公共int-ID{get;set;}公共字符串图像{get;set;}公共字符串名称{get;set;}公共字符串价格{get;set;}公共长产品ID{get;set;}