• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
光脚丫思考的专栏
十年窗下无人问,一举成名天下知!
博客园    首页    新随笔    联系   管理    订阅  订阅

光脚丫学LINQ(010):将内存中的对象转换为XML

视频演示: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> 
posted @ 2010-10-29 14:44  光脚丫思考  阅读(306)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3