public static bool ParameterTypesHasMultipleValues(SerializedProperty parameterTypesProperty) { string[] last = null; foreach (SerializedProperty arrayProperty in parameterTypesProperty.Multiple()) { string[] current = new string[arrayProperty.arraySize]; for (int i = 0; i < arrayProperty.arraySize; i++) { SerializedProperty parameterTypeProperty = arrayProperty.GetArrayElementAtIndex(i); current[i] = parameterTypeProperty.stringValue; } if (last != null && !current.SequenceEqual(last)) { return true; } last = current; } return false; }