---
title: "contains(where:)"
framework: swift
role: symbol
role_heading: Instance Method
path: "swift/array/contains(where:)"
---

# contains(where:)

Returns a Boolean value indicating whether the sequence contains an element that satisfies the given predicate.

## Declaration

```swift
func contains(where predicate: (Self.Element) throws -> Bool) rethrows -> Bool
```

## Parameters

- `predicate`: A closure that takes an element of the sequence as its argument and returns a Boolean value that indicates whether the passed element represents a match.

## Return Value

Return Value true if the sequence contains an element that satisfies predicate; otherwise, false.

## Discussion

Discussion You can use the predicate to check for an element of a type that doesn’t conform to the Equatable protocol, such as the HTTPResponse enumeration in this example. enum HTTPResponse {     case ok     case error(Int) }

let lastThreeResponses: [HTTPResponse] = [.ok, .ok, .error(404)] let hadError = lastThreeResponses.contains { element in     if case .error = element {         return true     } else {         return false     } } // 'hadError' == true Alternatively, a predicate can be satisfied by a range of Equatable elements or a general condition. This example shows how you can check an array for an expense greater than $100. let expenses = [21.37, 55.21, 9.32, 10.18, 388.77, 11.41] let hasBigPurchase = expenses.contains { $0 > 100 } // 'hasBigPurchase' == true note: O(n), where n is the length of the sequence.

## See Also

### Finding Elements

- [contains(_:)](swift/array/contains(_:).md)
- [allSatisfy(_:)](swift/array/allsatisfy(_:).md)
- [first(where:)](swift/array/first(where:).md)
- [firstIndex(of:)](swift/array/firstindex(of:).md)
- [index(of:)](swift/array/index(of:).md)
- [firstIndex(where:)](swift/array/firstindex(where:).md)
- [last(where:)](swift/array/last(where:).md)
- [lastIndex(of:)](swift/array/lastindex(of:).md)
- [lastIndex(where:)](swift/array/lastindex(where:).md)
- [min()](swift/array/min().md)
- [min(by:)](swift/array/min(by:).md)
- [max()](swift/array/max().md)
- [max(by:)](swift/array/max(by:).md)
