LabVIEW does support automatic conversion of key primative types (such as ints, doubles, strings and arrays of such things). However, an ArrayList actually is not an Array type - it is a Collections type. It just happens to use an array internally for implementation. But it provides features that Arrays do not, such as dynamic resizing.
If the method you are trying to call uses ArrayList objects, then you'll need to create a subVI that converts to and from LV arrays of types into the array list. For example, check out the screen shot attached. Note that the ToObject vi can be found in vi.lib\Platform\dotnet.llb
One thing I just thought of - the constructor for the ArrayList can take an initial size. You can always get the size of the incoming array to initialize the ArrayList to the right size. This will save a lot of internal reallocations in the ArrayList if your LV array is large.