Home
Manage Your Code
Snippet: Convert Array of Objects to Data Table (C#)
Title: Convert Array of Objects to Data Table Language: C#
Description: Updated to reflect James Curran's feedback. I had used this when converting an array of objects or collections returned by a WCF service. It is a variant of the code found here: http://www.codeproject.com/Purgatory/Collection_to_table.asp. Views: 482
Author: Renelou Esperanzate Date Added: 3/15/2007
Copy Code  
1public DataTable ConvertArrayToTable(Array myList)
2        {
3            DataTable dt = new DataTable();
4            if (myList.Length > 0)
5            {
6                PropertyInfo[] propInfos = myList.GetValue(0).GetType().GetProperties();
7
8                foreach (PropertyInfo propInfo in propInfos)
9                {
10                    dt.Columns.Add(propInfo.Name, propInfo.PropertyType);
11                }
12
13                foreach (object tempObject in myList)
14                {
15                    DataRow dr = dt.NewRow();
16
17                    for (int i = 0; i < propInfos.Length; i++)
18                    {
19                        dr[i] = propInfos[i].GetValue(tempObject, null);
20                    }
21
22                    dt.Rows.Add(dr);
23                }
24            }
25
26            return dt;
27        }
Notes
Note: Edited to reflect the feedback of James Curran