【发布时间】:2017-01-24 10:17:07
【问题描述】:
我不确定这是否简单。
我有一个结构如下的 XML 文件:
<DEFTABLE>
<CUBE NAME="FristCube" />
<OUT NAME="Line1" />
<OUT NAME="Line2" />
<IN NAME="LineX" />
<IN NAME="LineY" />
</CUBE>
<CUBE NAME="SecondCube" />
<OUT NAME="LineX" />
<OUT NAME="LineY" />
<IN NAME="Line1" />
<IN NAME="Line2" />
</CUBE>
</DEFTABLE>
现在我创建了一个包含所有多维数据集名称的列表、一个包含所有内联的列表和一个包含所有外线的列表。 如您所见,一个 Cube 可以有多个 InLines 和 OutLines - 我怎样才能将它们匹配在一起?
我认为我需要一个包含所有 In- 和 Outlines 的“Cube”类,但我不知道如何实现这一点。
我想创建 CubeList 的 3D 对象(在 Unity 中)并将这些 Cube 与适当的线连接起来。
这就是我将信息放入列表的方式:
private List<Cube> GetCubeList()
{
XDocument xmlDoc = XDocument.Load (@"Cube_List.xml");
var cubes = (from c in xmlDoc.Root.Elements("CUBE")
select new Cube
{
Cubename = (string)c.Attribute("NAME"),
}).ToList();
return cubes.ToList();
}
...
private List<IN> GetINLines()
{
XDocument xmlDoc = XDocument.Load (@"Cube_List.xml");
var inline = (from line in xmlDoc.Root.Elements("CUBE").Descendants("IN")
select new InLine
{
Inline = (string)line.Attribute("NAME").Value,
}).ToList();
return inline().ToList();
}
【问题讨论】:
-
另一种方法是创建一个
Line的类和一个Cube的类。Line类有两个Cube元素,InCube 和 OutCube。那么你只需要一个List<Line>