that's the main problem when you work with ArrayList, Add method simply accepts any object you pass. here you are adding the string returned by the source.ToArray operation. to Add the array range you should use array.AddRange.
My personal recommendation is to avoid using ArrayList in your application and use Generic lists.
publicvoid CopySetting(ArrayList mySrcArrayList)
myTargetArrayList.AddRange(mySrcArrayList.ToArray(typeof(string))); //copying the ArrayList
Yeah don't use ArrayList unless there is some good reason you don't want type safety. Even if the initial list is a heterogenous one in this case, so you want an untyped list, you should definitely be using List<String> as the target, since you're only adding strings to it.