There is nothing wrong, but is there a nicer way to re-write this program? public IEnumerable<Employee> InsertEmployee(dynamic employees) { var newEmployeeRecord = new List<Employee>(); foreach (dynamic employee in employees) { newEmployeeRecord.Add( new Employee { EmployeeId = Convert.ToInt32(employee.EmployeeId) , EmployeeName = Convert.ToString(employee.EmployeeName) , Age = Convert.ToInt32(employee.Age) , Salary = Convert.ToInt32(employee.Salary) , DepartmentId = Convert.ToInt32(employee.DepartmentId) } ); } return EmployeeRecords.Concat(newEmployeeRecord); } Also, can we avoid typecasting? (I think it's not possible, so it could require an extension method.)