次のように 2 つのドメイン クラスがあります。
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;
}
6 つの親アイテムと、それぞれ fA オブジェクトを含むそれぞれのサブ要素のリストを作成できます。ただし、forEach ブロックの反復ごとに、リストは新しい兄弟ノードの値で上書きされます。具体的には、
fooNodeElemValue.Add(fA);
と
FooB.FooA_List= fooNodeElemValue;
上書きされます。
したがって、ループが完了すると、各リスト要素が 6 倍に複製されます。
FooB.FooA_List[0] = {DataA2, DataB2}
と
FooB.FooA_List[1] = {DataA2, DataB2}
:
:
どんな助けでも大歓迎です。
ありがとう!