[英]c# add items to a list
我正在嘗試向下面的項目添加項目,但出現以下錯誤;
無法將項目隱式轉換為 System.Collection.Generic.List
我的物品類型如下;
public class Item
{
[JsonProperty("variantId")]
public int variantId { get; set; }
[JsonProperty("quantity")]
public int quantity { get; set; }
[JsonProperty("returnReason")]
public ReturnReason returnReason { get; set; } = new ReturnReason();
}
public class RootObject
{
[JsonProperty("dropOff")]
public DropOff dropOff { get; set; } = new DropOff();
[JsonProperty("providerId")]
public int providerId { get; set; }
[JsonProperty("Reference")]
public string Reference { get; set; }
[JsonProperty("Id")]
public int Id { get; set; }
[JsonProperty("items")]
public List<Item> items { get; set; } = new List<Item>();
}
我知道它們是兩種不同的類型,但我將如何克服這一點
這是拋出錯誤;
items = (new Item
{
quantity = csv.GetField<int>(""),
variantId = csv.GetField<int>(""),
returnReason = new ReturnReason
{
code= csv.GetField<int>("")
}
})
只是為了添加更多上下文,這就是我所說的
while (csv.Read())
{
var booking = new ReturnsBooking.RootObject
{
dropOff = new DropOff {dropOffPointId = csv.GetField<string>("DropOffPointId") },
providerId = csv.GetField<int>("ProviderID"),
orderReference = csv.GetField("OrderReference"),
returnMethodId = csv.GetField<int>("returnMethodId"),
items = new Item
{
quantity = csv.GetField<int>(""),
variantId = csv.GetField<int>(""),
returnReason = new ReturnReason
{
code = csv.GetField<int>("")
}
})
};
recordss.Add(booking);
}
return recordss;
當我嘗試 items.add 時,我收到一條錯誤消息,指出項目不存在。 我也試過初始化項目..這似乎也不起作用
它引發錯誤,因為您沒有將項目添加到列表中,而是將項目分配給需要列表的變量。 這就是為什么您收到的異常表示您無法將 item 轉換為列表。
您可以在 RootObject 的初始化中使用列表初始化:
var booking = new ReturnsBooking.RootObject
{
items = new List<Item>
{
new Item
{
quantity = csv.GetField<int>(""),
variantId = csv.GetField<int>(""),
returnReason = new ReturnReason
{
code= csv.GetField<int>("")
}
}
},
//Other properties of RootObject...
}
或者您可以在 RootObject 初始化后添加該項目,如下所示:
var booking = new ReturnsBooking.RootObject {/* Initialize RootObject without adding the item ... */};
booking.items.Add(new Item
{
quantity = csv.GetField<int>(""),
variantId = csv.GetField<int>(""),
returnReason = new ReturnReason
{
code= csv.GetField<int>("")
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.