Currently the "Replace ArrayList with List<T>" command deducts the actual type from the context and correctly e.g. replaces "ArrayList" with "List]]>".
What it currently omits is to convert things like this:
return (string)result.ToArray( typeof( string ) );
to something like this:
Since the signature of the ToArray() function changes from ArrayList to List.
My suggestion is to rewrite such function calls and casts, too, when executing the "Replace ArrayList with List]]>" command.