gpt4 book ai didi

c# - 在具有子列表 的列表 中递归读取 XML 树结构

转载 作者:太空狗 更新时间:2023-10-29 17:37:16 27 4
gpt4 key购买 nike

我有这样一个 XML:

我有一个带有属性名称的成员类。

如何将每个单元及其子单元读入多个通用 List<Unit>哪个又可以有 child List<Unit>以递归方式使用最新的 .NET 技术?

<Root>
<Units Name="Test1">
<Unit Name="Test11" />
<Unit Name="Test12">
<Unit Name="Test21" />
<Unit Name="Test22" />
<Unit Name="Test23">
<Unit Name="Test31" />
<Unit Name="Test32" />
<Unit Name="Test33" />
</Unit>
<Unit Name="Test24" />
</Unit>
</Units>
<Units Name="Test2" />
<!-- ... -->
<Units Name="Test3" />
<!-- ... -->
<Units Name="Test4" />
</Root>

最佳答案

这样做,使用简单的递归:

public class Unit
{
public string Name { get; set; }
public List<Unit> Children { get; set; }
}

class Program
{
public static void Main()
{
XDocument doc = XDocument.Load("test.xml");
List<Unit> units = LoadUnits(doc.Descendants("Units").Elements("Unit"));
}

public static List<Unit> LoadUnits(IEnumerable<XElement> units)
{
return units.Select( x=> new Unit()
{ Name = x.Attribute("Name").Value,
Children = LoadUnits(x.Elements("Unit"))
}).ToList();
}
}

关于c# - 在具有子列表<T> 的列表<T> 中递归读取 XML 树结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6164241/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com