我有两个域类如下:
Class FooA:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace XXX.MyCore.Domain
{
public class FooA
{
public string String_FA { get; set; }
public string String_FB { get; set; }
}
}
Class FooB
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace XXX.MyCore.Domain
{
public class FooB
{
public string FooC{ get; set; }
public List<FooA> FooA_List { get; set; }
}
}
我的 xml 重复节点如下(共 6 个):
:
:
<ns2:Example>
<A>DataA1</A>
<B>DataB1</B>
</ns2:Example>
<ns2:Example>
<A>DataA2</A>
<B>DataB2</B>
</ns2:Example>
:
:
我有另一个类引用这些域对象。
:
:
List<FooA> fooANodeElemValue = new List<FooA>();
FooA fA = new FooA();
// I now iterate through the XML elements to parse sibling values
foreach (XElement elem in document.Descendants().Elements(nsUsr + "ExampleA"))
{
fA.String_FA= elem.Element("A").Value;
fA.String_FB= elem.Element("B").Value;
fooNodeElemValue.Add(fA);
FooB.FooA_List= fooNodeElemValue;
}
我能够构建一个包含六个父项的列表以及每个包含 fA 对象的相应子元素。但是,对于 forEach 块中的每次迭代,列表都会被新的兄弟节点值覆盖。具体来说,
fooNodeElemValue.Add(fA);
和
FooB.FooA_List= fooNodeElemValue;
被覆盖。
因此,当循环完成时,每个列表元素被复制 6x 所以,
FooB.FooA_List[0] = {DataA2, DataB2}
和
FooB.FooA_List[1] = {DataA2, DataB2}
:
:
非常感谢任何帮助。
谢谢!