Populate DataTable with API results I am querying an API and populating a C# Datatable with the results, then using a Table Value Parameter to populate a SQL Server table with the results.  This is my solution, but it is slow and takes quite some time to process. Is there any optimization that can be done to this syntax to speed up the process? Sorry for the length of code provided, just trying to provide full C# procedure so all transparency is seen.

namespace Test
{
    class Program
    {
        public static string gg;
        public static string ff;
        public static string ee;
        public static string dd;

        static void Main(string[] args)
        {
            DataTable SQLHelperTable = GenerateDataTable();
            var response = syncClient.DownloadString(url);
            var o = JsonConvert.DeserializeObject&lt;PrimaryObject[]&gt;(response);

            foreach (PrimaryObject ro in o)
            {
                if (ro.dataPull != null)
                {
                    foreach (dataPull data in ro.dataPull)
                    {
                        var secondaryData = data.DP.FirstOrDefault();

                        if (secondaryData != null)
                        {
                            gg = secondaryData["gg"];
                            ff = secondaryData["ff"];
                            ee = secondaryData["ee"];
                            dd = secondaryData["dd"];
                        }

                        SQLHelperTable.Rows.Add(ro.Alpha, data.a data.b data.c data.d data.e data.f data.g data.h data.i data.j data.k data.l data.m data.n data.o data.p data.q data.r data.s data.t data.u data.v data.w data.x data.y data.z data.aa data.bb, data.cc, gg,ff,ee,dd);
                    }
                }
            }
        }
        public static DataTable GenerateDataTable()
        {
            DataTable dt = new DataTable();
            \\Generate DataTable 
            return dt;
        }
    }
    public class PrimaryObject
    {
        public string Alpha { get; set; }
        public List&lt;dataPull&gt; dataPull { get; set; }
    }
    public class dataPull
    {
        public int a { get; set; }
        //Remaining get set statements
        public List&lt;Dictionary&lt;string, string&gt;&gt; cc { get; set; }
    }
}
You can pass all of the properties of your dataPull class in a single line which will also pass any future properties you decide to add to your object, using Reflection:

var values = data.GetType().GetProperties().Select(p =&gt; p.GetValue(data))
    .Concat(new object[] {gg, ff, ee, dd});
SQLHelperTable.Rows.Add(ro.Alpha, values);