0
我試圖創建一個看起來像這樣的XML:Linq2XML構建的XDocument,stackoverflowexception
<RootList>
<Root>
<ID>value1</ID>
<Number>value2</Number>
<Quantity>value3</Quantity>
</Root>
<Root>
<ID>value1</ID>
<Number>value2</Number>
<Quantity>value4</Quantity>
</Root>
<Root>
<ID>value5</ID>
<Number>value6</Number>
<Quantity>value7</Quantity>
</Root>
</RootList>
使用下面的接口的實例。
interface IRoot
{
int ID { get; }
string Number { get; set; }
List<IQuantity> List { get; set; }
}
interface IQuantity
{
int QuantityID { get; }
double Quantity { get; set; }
}
下面的代碼是我用來創建XML的,但是由於stackoverflowexception導致進程終止。
XDocument doc = new XDocument(
new XDeclaration("1.0", "utf-8", null),
new XElement("RootList",
this._list.Select(root =>
root.List.Select(quantity =>
new XElement("Root",
new XElement("ID", root.ID.ToString()),
new XElement("Number", root.Number),
new XElement("Quantity", quantity.Quantity.ToString())
)
)
)
)
);
如果我刪除了內心的選擇(其中i遍歷列表列表中)輸出的作品。我不知道如何實際跟蹤這個錯誤,但我敢肯定它是由於內部的選擇。有沒有其他人有過同樣的問題,或者有關於此的任何提示? :)
那麼你出的內存使用內部的選擇。這些列表通常有多大? – JNYRanger
創建到通過它們循環的功能:與當前數據組的列表 .Count之間= 2且每個IRoot具有它們5個IQuantities。所以這些數據應該不是什麼大問題。我減少了迴歸的倉庫來只返回2根與每個呼叫5只。 –
Alex07