gpt4 book ai didi

c# - c#中的数据表到XML,其中一些项目是列表
转载 作者:太空宇宙 更新时间:2023-11-03 11:57:20 25 4
gpt4 key购买 nike

我想使用 C# 中的数据集创建一个 XML 文件来存储数据。类如下

public class Person
{
[Key]
public string id { get; set; }
public string name { get; set; }
public virtual ICollection<Dependant> dependants { get; set; }
}
public class Dependant
{
public string name { get; set; }
public string email { get; set; }
}

生成的最终 XML 文件应该是

  <db>
<Person>
<id>1</id>
<name>John</name>
<dependants>
<dependant>
<name>test1</name>
<email>test1</email>
</dependant>
<dependant>
<name>test2</name>
<email>test2</email>
</dependant>
</dependants>
<Person>
<db>

要求是像数据库一样使用,添加数据要使用

Dataset db = new Dataset();
List<Dependant> dpList = new List<Dependant>();
Dataset.PersonRow pr = new Dataset.PersonRow();
pr.name = "name";
pr.id = "pr1";
Dependant dp = new Dependant();
dp.name = "dp1";
dp.email = "dp1";
dpList.Add(dp);
dp.dependants = dpList;
db.Person.AddNewPersonRow(dp);
db.AcceptChanges();
db.WriteXML("localData");

根据讲师的说法,这是应该遵循的结构。

我在创建数据表时遇到问题,因为在创建数据表时我不知道应该用于列表的数据类型。

我怎样才能做到这一点?

我是 C# 的新手,所以任何帮助都会很棒!

最佳答案

试试 xml linq:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
DataBase db = new DataBase()
{
Person = new Person()
{
dependants = new List<Dependant>()
}
};


XDocument doc = XDocument.Parse("<db><Person></Person></db>");
XElement xPerson = doc.Descendants("Person").FirstOrDefault();

Person person = db.Person;
xPerson.Add(new object[] {
new XElement("id", person.id),
new XElement("name", person.name),
new XElement("dependants")
});
XElement xDependants = xPerson.Element("dependants");

foreach (Dependant dependant in person.dependants)
{
xDependants.Add(new XElement("dependant"), new object[] {
new XElement("name", dependant.name),
new XElement("email", dependant.email)
});
}
}
}
public class Person
{
public string id { get; set; }
public string name { get; set; }
public virtual ICollection<Dependant> dependants { get; set; }
}
public class Dependant
{
public string name { get; set; }
public string email { get; set; }
}
public class DataBase
{
public Person Person { get; set; }
}
}

关于c# - c#中的数据表到XML,其中一些项目是列表<object>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59022249/

25 4 0