bool ICommandExecutorImpl.TryAddToLastParameter(ParameterInfo lastParameter, string value, SortedList <int, object> parameters) { object argValue; if (lastParameter?.ParameterType.IsArray != true) { return(false); } Array existingArray; if (parameters.TryGetValue(lastParameter.Position, out var existingArgValue)) { existingArray = (Array)existingArgValue; } else { existingArray = Array.CreateInstance(lastParameter.ParameterType.GetElementType(), 0); } argValue = _valueConverter.GetValue(value, lastParameter.ParameterType.GetElementType()); var newArray = existingArray.ExtendAndAdd(argValue); parameters.AddOrUpdate(lastParameter.Position, newArray); return(true); }