C#中linq学习(将泛型集合转换为XML元素)示例
2009-03-23 17:44
796 查看
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
namespace LinqStudy
{
//***********************************************************************************************************
//Module:Program.cs
//Author:limeteor
//Create Date:2008-06-27
//***********************************************************************************************************
class Program
{
static void Main(string[] args)
{
List<Student> students = new List<Student>() {
new Student{First="Svetlana",Last="Omelchenko",ID=111,Street="123 Main Street",City="Seattle",Scores=new List<int>(){97, 92, 81, 60}},
new Student{First="Claire",Last="O’Donnell",ID=112,Street="124 Main Street",City="Redmond",Scores=new List<int>(){75, 84, 91, 39}},
new Student{First="Sven",Last="Mortensen",ID=113,Street="125 Main Street",City="Lake City",Scores= new List<int> {88, 94, 65, 91}},
};
List<Teacher> teachers = new List<Teacher>(){
new Teacher {First="Ann", Last="Beebe", ID=945, City = "Seattle"},
new Teacher {First="Alex", Last="Robinson", ID=956, City = "Redmond"},
new Teacher {First="Michiyo", Last="Sato", ID=972, City = "Tacoma"}
};
//用查询语法生成xml格式
var studentXML = new XElement("Root", from student in students
let x = String.Format("{0},{1},{2},{3}", student.Scores[0], student.Scores[1], student.Scores[2], student.Scores[3])
select new XElement("student",
new XElement("First", student.First),
new XElement("Last", student.Last),
new XElement("Scores", x)));
//用Lambda表达式(方法语法)生成xml格式
var teacherXML = new XElement("Root",teachers.Select(p=> new XElement("Teacher",new XElement("First",p.First),
new XElement("Last",p.Last),
new XElement("Id",p.ID),
new XElement("City",p.City))));
Console.WriteLine("---------开始打印----------------------");
Console.WriteLine(studentXML);
Console.WriteLine("----------------------------------------");
Console.WriteLine(teacherXML);
Console.WriteLine("----------------------------------------");
foreach (var i in teacherXML.Nodes())
{
Console.WriteLine(i);//打印第一个节点子节点的集合
}
Console.WriteLine("--------------打印完成------------------");
Console.ReadKey();
}
}
//***********************************************************************************************************
//Module:Student.cs
//Author:limeteor
//Create Date:2008-06-27
//***********************************************************************************************************
class Student
{
public string First { get; set; }
public string Last { get; set; }
public int ID { get; set; }
public string Street { get; set; }
public string City { get; set; }
public List<int> Scores;
}
//***********************************************************************************************************
//Module:Teacher.cs
//Author:limeteor
//Create Date:2008-06-27
//***********************************************************************************************************
class Teacher
{
public string First { get; set; }
public string Last { get; set; }
public int ID { get; set; }
public string City { get; set; }
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
namespace LinqStudy
{
//***********************************************************************************************************
//Module:Program.cs
//Author:limeteor
//Create Date:2008-06-27
//***********************************************************************************************************
class Program
{
static void Main(string[] args)
{
List<Student> students = new List<Student>() {
new Student{First="Svetlana",Last="Omelchenko",ID=111,Street="123 Main Street",City="Seattle",Scores=new List<int>(){97, 92, 81, 60}},
new Student{First="Claire",Last="O’Donnell",ID=112,Street="124 Main Street",City="Redmond",Scores=new List<int>(){75, 84, 91, 39}},
new Student{First="Sven",Last="Mortensen",ID=113,Street="125 Main Street",City="Lake City",Scores= new List<int> {88, 94, 65, 91}},
};
List<Teacher> teachers = new List<Teacher>(){
new Teacher {First="Ann", Last="Beebe", ID=945, City = "Seattle"},
new Teacher {First="Alex", Last="Robinson", ID=956, City = "Redmond"},
new Teacher {First="Michiyo", Last="Sato", ID=972, City = "Tacoma"}
};
//用查询语法生成xml格式
var studentXML = new XElement("Root", from student in students
let x = String.Format("{0},{1},{2},{3}", student.Scores[0], student.Scores[1], student.Scores[2], student.Scores[3])
select new XElement("student",
new XElement("First", student.First),
new XElement("Last", student.Last),
new XElement("Scores", x)));
//用Lambda表达式(方法语法)生成xml格式
var teacherXML = new XElement("Root",teachers.Select(p=> new XElement("Teacher",new XElement("First",p.First),
new XElement("Last",p.Last),
new XElement("Id",p.ID),
new XElement("City",p.City))));
Console.WriteLine("---------开始打印----------------------");
Console.WriteLine(studentXML);
Console.WriteLine("----------------------------------------");
Console.WriteLine(teacherXML);
Console.WriteLine("----------------------------------------");
foreach (var i in teacherXML.Nodes())
{
Console.WriteLine(i);//打印第一个节点子节点的集合
}
Console.WriteLine("--------------打印完成------------------");
Console.ReadKey();
}
}
//***********************************************************************************************************
//Module:Student.cs
//Author:limeteor
//Create Date:2008-06-27
//***********************************************************************************************************
class Student
{
public string First { get; set; }
public string Last { get; set; }
public int ID { get; set; }
public string Street { get; set; }
public string City { get; set; }
public List<int> Scores;
}
//***********************************************************************************************************
//Module:Teacher.cs
//Author:limeteor
//Create Date:2008-06-27
//***********************************************************************************************************
class Teacher
{
public string First { get; set; }
public string Last { get; set; }
public int ID { get; set; }
public string City { get; set; }
}
}
相关文章推荐
- C#中linq学习(将泛型集合转换为XML元素)示例
- C#中利用LINQ to XML与反射把任意类型的泛型集合转换成XML格式字符串的方法
- C#中利用LINQ to XML与反射把任意类型的泛型集合转换成XML格式字符串的方法
- C# Linq To XML的学习(创建并编辑XML树)示例
- C# Linq To XML的学习(创建并编辑XML树)示例
- 参考文章-C# Linq To XML的学习(创建并编辑XML树)示例
- C#中把任意类型的泛型集合转换成SQLXML数据格式的实例
- C#回顾学习笔记三十五:泛型集合List
- C# Linq to xml学习 用XElement类读写XML文档(用作配置文档)
- 黑马程序员之C#编程基础学习笔记:有一个整数数组,请声明一个字符串数组,将整数数组中的每一个元素的值转换为字符串保存到字符串数组中
- 笔记:Struts2 Action 非泛型集合元素类型转换
- C# 基于泛型的自定义线性节点链表集合示例
- C#获取泛型集合中元素的类型
- xStream 学习笔记 - Java对象与XML相互转换简单示例
- C#学习记录四:集合,比较和转换
- C#学习笔记之对象和Xml文档之间的转换
- 33、C#:linq查本集合中不包含于另一个集合的元素
- C#控制台基础 List泛型集合与对应的数组相互转换实现代码
- C#操作Xml:XSLT语法 在.net中使用XSLT转换xml文档示例
- C#读取数据库返回泛型集合 把DataSet类型转换为List<T>泛型集合