Convert a IEnumerable to DataTable with Reflection
Filed in C#, Code Snippets on Sep.11, 2009
I use an IEnumerable - IEnumerable<MyObjects.objMyContact> FilteredContacts; Suppose this contains some rows.
Here is the code for generating DataTable from IEnumerable. Here are the sample steps I followed.
- Create a new DataTable
- Add column names to DataTable
- Add rows to DataTable
DataTable dt = new DataTable(); MyObjects.objMyContact c = new MyObjects.objMyContact(); Type t = typeof(MyObjects.objMyContact); MemberInfo[] mi = t.GetMembers(); foreach (MemberInfo m in mi) { if (m.MemberType == MemberTypes.Field) { FieldInfo fi = m as FieldInfo; dt.Columns.Add(fi.Name, fi.FieldType); } } foreach (MyObjects.objMyContact contact in FilteredContacts) { DataRow dr = dt.NewRow(); foreach (MemberInfo m in mi) { if (m.MemberType == MemberTypes.Field) { FieldInfo fi = m as FieldInfo; dr[fi.Name] = fi.GetValue(contact); } } dt.Rows.Add(dr); }
Related posts:























Leave a Reply
You must be logged in to post a comment.