This line:
SqlCommand cmd = new SqlCommand("Insert into "+ Table_Name + "('"+ Field_Name + "') Values('" + TB_Name + "')", con);
Field name and TB_name are lists not single values. You cannot avoid looping in this particular format. And since you're already looping to fill the lists, you could call sqlcommand immediately anyway (just don't forget to opentransaction at the start and commit on the end - that is, insert all or nothing)
You could, instead of filling collections (lists), fill datatable object and then use
SqlBulkCopy to save all at once[
^]