c# 将List集合类转换成DataTable

.net项目中,使用cshtml 做报表时,前端页面需要的数据格式是DataTable格式,

在后台方法将调用接口获取的 List集合数据转换为想要的DataTable 并指定列名
       

        /// <summary>    
        /// 将List集合类转换成DataTable    
        /// </summary>    
        /// <param name="list">集合</param>    
        /// <returns></returns>    
        public  DataTable ToDataTableTow(List<StockModel> list)
        {
            //创建一个DataTable
            DataTable dt = GetDataTableName();
            if (list.Count > 0)
            {
                foreach (StockModel stock in list)
                {
                    // 创建一个新行
                    DataRow newRow = dt.NewRow();

                    // 设置新行的列值
                    newRow["店铺名称"] = stock.zcompanyname; 
                    newRow["供应商名称"] = stock.suppliername;
                    newRow["库存地点"] = stock.stockunitname;
                    newRow["单据编号"] = stock.djno;
                    newRow["品牌"] = stock.brandname;
                    newRow["型号"] = stock.sortname;
                    newRow["颜色"] = stock.colorname;
                    newRow["物料号"] = stock.matnr;
                    newRow["物料名称"] = stock.matnrname;
                    newRow["批次号"] = stock.zcmsno;
                    newRow["单价"] = stock.dc_price;
                    newRow["币别"] = stock.currency;
                    newRow["库存数量"] = stock.kcqty;
                    newRow["占用库存"] = stock.occupyqty;
                    newRow["可用库存"] = stock.cansaleqty;
                    newRow["库龄"] = stock.storageage;

                    // 将新行添加到DataTable中
                    dt.Rows.Add(newRow);
                }
            }
            return dt;
        }

        //创建一个DataTable  ,并指定列名      
        DataTable GetDataTableName()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("店铺名称");
            dt.Columns.Add("供应商名称");
            dt.Columns.Add("库存地点");
            dt.Columns.Add("单据编号");
            dt.Columns.Add("品牌");
            dt.Columns.Add("型号");
            dt.Columns.Add("颜色");
            dt.Columns.Add("物料号");
            dt.Columns.Add("物料名称");
            dt.Columns.Add("批次号");
            dt.Columns.Add("单价");
            dt.Columns.Add("币别");
            dt.Columns.Add("库存数量");
            dt.Columns.Add("占用库存");
            dt.Columns.Add("可用库存");
            dt.Columns.Add("库龄");
            dt.AcceptChanges();
            return dt;
        }

DataTable转换成List集合是一个常见的编程任务,特别是在.NET框架中,DataTable通常用来表示内存中的数据表。下面是一个如何实现这种换的步骤说明: 1. 创建DataTable对象并填充数据。 2. 定义一个与DataTable中行结构相对应的类(Poco类)。 3. 使用反射、Linq或其他方法遍历DataTable的每一行,并将其换为Poco类的实例。 4. 将这些实例添加到List集合中。 以下是使用C#中的Linq to Dataset功能的示例代码: ```csharp using System; using System.Collections.Generic; using System.Data; using System.Linq; public class DataEntity { // 假设你的DataTable中有Name和Age两列 public string Name { get; set; } public int Age { get; set; } } public class Program { public static void Main() { // 创建一个DataTable并添加列和行数据 DataTable dt = new DataTable(); dt.Columns.Add("Name", typeof(string)); dt.Columns.Add("Age", typeof(int)); dt.Rows.Add("Alice", 25); dt.Rows.Add("Bob", 22); dt.Rows.Add("Charlie", 30); // 使用Linq将DataTable换为List<DataEntity> List<DataEntity> dataList = dt.AsEnumerable() .Select(row => new DataEntity { Name = row.Field<string>("Name"), Age = row.Field<int>("Age") }) .ToList(); // 此时dataList包含了DataTable中的所有数据 } } ``` 在这个示例中,我们首先定义了一个名为`DataEntity`的类,它具有与DataTable中列对应的属性。然后我们创建了一个DataTable并添加了一些数据。使用Linq的`AsEnumerable()`方法将DataTable换为可枚举类型,然后使用`Select`方法将每一行换为`DataEntity`类的实例,并最终调用`ToList()`方法将结果换为List集合。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值