以下のソースコレクションがあります。
<SourceCollection>
<Row1>
<Col1>Store1</Col1>
<Col2>Med1</Col2>
<Col3>Val1</Col3>
</Row1>
<Row2>
<Col1>Store1</Col1>
<Col2>Med1</Col2>
<Col3>Val2</Col3>
</Row2>
<Row3>
<Col1>Store1</Col1>
<Col2>Med2</Col2>
<Col3>Val2</Col3>
</Row3>
<Row4>
<Col1>Store2</Col1>
<Col2>Med1</Col2>
<Col3>Val4</Col3>
</Row4>
</SourceCollection>
for each の使用を最小限に抑えて、以下のようなターゲット コレクションが必要です。
<TargetCollection>
<Store value=Store1>
<Dim value=Med1>
<DimCode>Val1</DimCode>
<DimCode>Val2</DimCode>
</Dim>
<Dim value=Med2>
<DimCode>Val3</DimCode>
</Dim>
</Store>
<Store value=Store2>
<Dim value=Med1>
<DimCode>Val4</DimCode>
</Dim>
</Store>
</TargetCollection> `
私の最初の設計では、同じソース コレクションに対して 3 つの for-each ループを使用して、必要に応じてターゲット xml を形成しました。しかし、ソース コレクションには数百万行が含まれているため、リスト全体 (行) を 3 倍にトラバースする変換が行われ、システム パフォーマンスに影響を与えています。これを回避するためのアイデアを教えてください。