private void AddQueryNotEqual(QueryHandle queryHandle, string columnName, object value, Type columnType) { var propertyIndex = _metadata.PropertyIndices[columnName]; switch (value) { case null: case RealmValue rv when rv.Type == RealmValueType.Null: queryHandle.NullNotEqual(_realm.SharedRealmHandle, propertyIndex); break; case string stringValue: queryHandle.StringNotEqual(_realm.SharedRealmHandle, propertyIndex, stringValue, caseSensitive: true); break; case RealmValueType realmValueType: queryHandle.RealmValueTypeNotEqual(_realm.SharedRealmHandle, propertyIndex, realmValueType); break; default: // The other types aren't handled by the switch because of potential compiler applied conversions AddQueryForConvertibleTypes(_realm.SharedRealmHandle, propertyIndex, value, columnType, queryHandle.ValueNotEqual); break; } }