C# DataTable按列过滤通用函数

博客围绕C#中DataTable按列过滤通用函数展开,在信息技术领域,C#常用于后端开发,DataTable按列过滤功能可有效处理数据,提高数据筛选效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

static List<T> Filter<T>(List<T> source, string expresion) where T:class,new()
        {
            var propertys = typeof(T).GetProperties();
            var resultList = new List<T>();
            using (DataTable dt = new DataTable())
            {
                foreach (var prop in propertys)
                {
                    var type = prop.PropertyType;
                    dt.Columns.Add(prop.Name, type);
                }
                foreach (var model in source)
                {
                    var dataRow= dt.NewRow();
                    foreach (var prop in propertys)
                    {
                       dataRow[prop.Name]= prop.GetValue(model, null);
                    }
                    dt.Rows.Add(dataRow);
                }
                DataRow[] rows = dt.Select(expresion);
                if (rows != null && rows.Length > 0)
                {
                    foreach (var row in rows)
                    {
                        var instance = new T();
                        foreach (var prop in propertys)
                        {
                            prop.SetValue(instance, row[prop.Name], null);
                        }
                        resultList.Add(instance);
                    }

                }
            }
            return resultList;
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值