write data to xml

本文介绍了一种将C#中的泛型列表(List)转换为DataTable的方法,并演示了如何将转换后的DataTable导出为XML文件的过程。具体实现包括定义一个学生类(Student),创建一个通用方法(ConvertDataToDataTable)用于将列表数据转换成DataTable,最后通过测试方法生成包含学生信息的XML文件。

 

 

        public class Student
        {
            public int Id { get; set; }
            public string FirstName { get; set; }
            public string LastName { get; set; }
        }

        private DataTable ConvertDataToDataTable<T>(IEnumerable<T> list)
        {
            var type = typeof(T);
            var properties = type.GetProperties();
            var dataTable = new DataTable();
            dataTable.Columns.AddRange(properties.Select(x => new DataColumn(x.Name)).ToArray());
            foreach (var item in list)
            {
                var dataRow = dataTable.NewRow();
                foreach (var property in properties)
                {
                    dataRow[property.Name] = property.GetValue(item, null);
                }
                dataTable.Rows.Add(dataRow);
            }
            return dataTable;
        }

        [Test]
        public void XmlTest()
        {
            DataSet dataSet = new DataSet {DataSetName = "CustomDataSet"};
            Student student1 = new Student
            {
                Id = 1,
                FirstName = "Chuck",
                LastName = "Lu"
            };
            Student student2 = new Student()
            {
                Id = 2,
                FirstName = "Yong",
                LastName = "Zhang"
            };
            IEnumerable<Student> list = new List<Student>() { student1, student2 };
            var dataTable = ConvertDataToDataTable(list);
            dataTable.TableName = "Students";
            dataSet.Tables.Add(dataTable);
            string xml = dataSet.GetXml();
            Console.WriteLine(xml);
        }

 

输出结果为:

<CustomDataSet>
  <Students>
    <Id>1</Id>
    <FirstName>Chuck</FirstName>
    <LastName>Lu</LastName>
  </Students>
  <Students>
    <Id>2</Id>
    <FirstName>Yong</FirstName>
    <LastName>Zhang</LastName>
  </Students>
</CustomDataSet>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值