视频演示:http://u.115.com/file/f24db1fdfa
通过 LINQ 查询,可以轻松地在内存中的数据结构、SQL 数据库、ADO.NET 数据集和 XML 流或文档之间转换数据。下面的示例将内存中的数据结构中的对象转换为 XML 元素。
List<Student> Students = new List<Student>()
{
new Student {
FirstName="Svetlana",
LastName="Omelchenko",
ID=111,
Scores = new List<int>{97, 92, 81, 60}},
new Student {
FirstName="Claire",
LastName="O’Donnell",
ID=112,
Scores = new List<int>{75, 84, 91, 39}},
new Student {
FirstName="Sven",
LastName="Mortensen",
ID=113,
Scores = new List<int>{88, 94, 65, 91}},
};
// Create the query.
var StudentsToXML = new XElement("Root",
from student in Students
let ScoreString = String.Format("{0},{1},{2},{3}",
student.Scores[0],
student.Scores[1],
student.Scores[2],
student.Scores[3])
select new XElement("Student",
new XElement("FirstName", student.FirstName),
new XElement("LastName", student.LastName),
new XElement("Scores", ScoreString)
)
);
// Execute the query.
Console.WriteLine(StudentsToXML);
// Keep the console open in debug mode.
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
List<Student> Students = new List<Student>()
{
new Student {
FirstName="Svetlana",
LastName="Omelchenko",
ID=111,
Scores = new List<int>{97, 92, 81, 60}},
new Student {
FirstName="Claire",
LastName="O’Donnell",
ID=112,
Scores = new List<int>{75, 84, 91, 39}},
new Student {
FirstName="Sven",
LastName="Mortensen",
ID=113,
Scores = new List<int>{88, 94, 65, 91}},
};
// Create the query.
var StudentsToXML = new XElement("Root",
from student in Students
let ScoreString = String.Format("{0},{1},{2},{3}",
student.Scores[0],
student.Scores[1],
student.Scores[2],
student.Scores[3])
select new XElement("Student",
new XElement("FirstName", student.FirstName),
new XElement("LastName", student.LastName),
new XElement("Scores", ScoreString)
)
);
// Execute the query.
Console.WriteLine(StudentsToXML);
// Keep the console open in debug mode.
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
此代码生成下面的 XML 输出:
<Root>
<Student>
<FirstName>Svetlana</FirstName>
<LastName>Omelchenko</LastName>
<Scores>97,92,81,60</Scores>
</Student>
<Student>
<FirstName>Claire</FirstName>
<LastName>O’Donnell</LastName>
<Scores>75,84,91,39</Scores>
</Student>
<Student>
<FirstName>Sven</FirstName>
<LastName>Mortensen</LastName>
<Scores>88,94,65,91</Scores>
</Student>
</Root>