Instance Method

# firstIndex(where:)

Returns the first index in which an element of the collection satisfies the given predicate.

Current

Previous

## Parameters

`predicate`

A closure that takes an element as its argument and returns a Boolean value that indicates whether the passed element represents a match.

## Return Value

The index of the first element for which `predicate` returns `true`. If no elements in the collection satisfy the given predicate, returns `nil`.

## Discussion

You can use the predicate to find an element of a type that doesn’t conform to the `Equatable` protocol or to find an element that matches particular criteria. Here’s an example that finds a student name that begins with the letter “A”:

Complexity: O(n), where n is the length of the collection.

### Finding Elements

`subscript(Set<Element>.Index) -> Element`

Accesses the member at the given position.

`func contains(where: (Element) -> Bool) -> Bool`

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

`func allSatisfy((Element) -> Bool) -> Bool`

Returns a Boolean value indicating whether every element of a sequence satisfies a given predicate.

`func first(where: (Element) -> Bool) -> Element?`

Returns the first element of the sequence that satisfies the given predicate.

`func firstIndex(of: Element) -> Set<Element>.Index?`

Returns the index of the given element in the set, or `nil` if the element is not a member of the set.

`func index(of: Element) -> Index?`

Returns the first index where the specified value appears in the collection.

Deprecated
`func min() -> Element?`

Returns the minimum element in the sequence.

`func min(by: (Element, Element) -> Bool) -> Element?`

Returns the minimum element in the sequence, using the given predicate as the comparison between elements.

`func max() -> Element?`

Returns the maximum element in the sequence.

`func max(by: (Element, Element) -> Bool) -> Element?`

Returns the maximum element in the sequence, using the given predicate as the comparison between elements.