How to convert DataView,DataRowView to Generic Typ

2019-07-30 07:22发布

Is there any possible method than looping, Enumerating the ICollection to convert them respectively to Typed List knowing the columns in the ICollection. I am using .net Framework 2.0, C#2.0. Expected answer would be something like this,a one liner

List<Bills> bills = GetBills(DataView/DataRowView/ICollection);

where Bills type would have BillNumber, BillDate, BilledTo as properties. The DataRowView/DataView would have corresponding Columns with records in them. Is there a factory build method that does the Job? If No any one liner to do it?

2条回答
乱世女痞
2楼-- · 2019-07-30 07:33

Use Linq Select to convert the DataView rows to a List of objects:

DataView yourDataView;

List<Bills> bills = yourDataView.ToTable().Rows.Cast<DataRow>()
                    .Select(r => new Bills() 
                    { 
                        BillNumber = r.Field<int>("BillNumber"), 
                        BillDate = r.Field<DateTime>("BillDate"), 
                        BilledTo = r["BilledTo"].ToString()                 
                    }).ToList();
查看更多
Animai°情兽
3楼-- · 2019-07-30 07:45

Could you do it in one line using a LINQ Select with a lambda? Something along these lines....

List<Bills> bills = yourDataView.Rows.Select(t => new Bills() {BillNumber = t["BillNumber"], BillDate = t["BillDate"], BilledTo = t["BilledTo"]}).ToList();
查看更多
登录 后发表回答