我有一个在Linq查询中使用的匿名类型,并希望将其设为类而不是匿名类型。
字段为:Age和具有多个元素的XML节点。如何声明类以便可以访问XML元素?
这是部分声明的类:
class Student {
int Age;
// ??? What to use here for the XML node? XElement?
}
答案 0 :(得分:1)
据我所知,你有一些像这样的XML:
<student>
<age></age>
<innerNode>
<node1></node1>
<node2></node2>
<innerNode>
</student>
并且您希望在c#类中表示它。我建议有2节课。 1为学生,然后另一个为innerNode。
在您的学生班中,您将拥有以下属性:
int Age { get; };
innerNodeClass Inner { get; }
然后你就可以做Student.Inner.Node1。
答案 1 :(得分:1)
也许这就是你要找的......
解释我已经创建了一个例子..
我创建了一个看起来像这样的学生班级
public class Student
{
public int Age { get; set; }
public string XmlData { get; set; }
public Student()
{
}
}
我创建了课程课程。此类将由xml
中的值启动 public class Course
{
public string Name { get; set; }
public int Grade { get; set; }
public Course()
{
}
}
现在查看代码......
Student student = new Student();
student.Age = 120;
student.XmlData = "<root><courses><course id='0'><name>Name a</name><grade>88</grade></course><course id='1'><name>Name a</name><grade>88</grade></course><course id='2'><name>Name a</name><grade>88</grade></course><course id='3'><name>Name a</name><grade>88</grade></course></courses></root>";
XDocument doc = XDocument.Parse(student.XmlData);
List<Course> coursesData = (from c in doc.Element("root").Element("courses").Elements("course")
select new Course()
{
Name = c.Element("name").Value,
Grade = Convert.ToInt16(c.Element("grade").Value)
}).ToList();
我希望它可以帮到你