我想構建一個結構的結構來複制由XML序列化創建的結構。基本上以下結構是準確的,當我讀取結構時,我可以訪問具有數組組件的元素,如下所示。c#嵌套數組結構初始化
我不能做的是找出頂層結構中的數組,然後進一步將數組放入結構中的語法。
GetListResponse newone = new GetListResponse(); // this works
newone.marker = ""; // these work
newone.count = 1;
int x = 0;
while (reader.Read()) // This works and is where the data is coming from
{
newone.orderDetails[x] = new GetListResponseDetails(); // does NOT work!
newone.orderDetails[x].order.orderId = Convert.ToInt32(reader[4]);
newone.orderDetails[x].order.orderPlacedTime = Convert.ToUInt64(reader[0]);
newone.orderDetails[x].order.orderValue = Convert.ToInt32(reader[3]) * Convert.ToDecimal(reader[5]);
newone.orderDetails[x].order.ItemDetails[0] = new GetListResponse OrderDetailsItemDetails()[]; // this DOESN'T WORK either
newone.orderDetails[x].order.ItemDetails[0].Price = Convert.ToDecimal(reader[5]);
newone.orderDetails[x].order.ItemDetails[0].filledQuantity = Convert.ToInt32(reader[3]);
newone.orderDetails[x].order.ItemDetails[0].ItemNumber = 0;
newone.orderDetails[x].order.ItemDetails[0].orderedQuantity = Convert.ToInt32(reader[3]);
x++;
}
***更新這裏是類的定義:
public partial class GetListResponse {
private int countField;
private string markerField;
private GetListResponseDetails[] orderDetailsField;
/// <remarks/>
public int count {
get {
return this.countField;
}
set {
this.countField = value;
}
}
/// <remarks/>
public string marker {
get {
return this.markerField;
}
set {
this.markerField = value;
}
}
/// <remarks/>
[System.Xml.Serialization.XmlArrayItemAttribute("OrderDetails", IsNullable=false)]
public GetListResponseDetails[] orderDetails {
get {
return this.orderDetailsField;
}
set {
this.orderDetailsField = value;
}
}
}
和項目的詳細信息:
public partial class GetListResponserDetailsOrder {
private string priceTypeField;
private GetListResponseDetailsItemDetails[] ItemDetailsField;
public GetListResponseDetailsItemDetails [] ItemDetails {
get {
return this.ItemDetailsField;
}
set {
this.ItemDetailsField = value;
}
}
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "4.0.30319.1")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true)]
public partial class GetListResponseOrderDetailsItemDetails {
private long ItemNumberField;
private decimal orderedQuantityField;
private decimal filledQuantityField;
private decimal PriceField;
}
'new GetListResponse Details();'這是什麼? C#中沒有這樣的語法。 –
注意:只是爲了澄清 - 作爲「結構的結構」,你實際上是指「類與其他類的列表」,而不是從字面上來看'struct Details' ... –
你能告訴我們你的GetListResponse結構/類看起來像內?這將幫助我們瞭解您的問題。 –