---
title: indices
framework: swift
role: symbol
role_heading: Instance Property
path: swift/string/indices-swift.property
---

# indices

The indices that are valid for subscripting the collection, in ascending order.

## Declaration

```swift
var indices: DefaultIndices<Self> { get }
```

## Discussion

Discussion A collection’s indices property can hold a strong reference to the collection itself, causing the collection to be non-uniquely referenced. If you mutate the collection while iterating over its indices, a strong reference can cause an unexpected copy of the collection. To avoid the unexpected copy, use the index(after:) method starting with startIndex to produce indices instead. var c = MyFancyCollection([10, 20, 30, 40, 50]) var i = c.startIndex while i != c.endIndex {     c[i] /= 5     i = c.index(after: i) } // c == MyFancyCollection([2, 4, 6, 8, 10])

## See Also

### Manipulating Indices

- [startIndex](swift/string/startindex.md)
- [endIndex](swift/string/endindex.md)
- [index(after:)](swift/string/index(after:).md)
- [formIndex(after:)](swift/string/formindex(after:).md)
- [index(before:)](swift/string/index(before:).md)
- [formIndex(before:)](swift/string/formindex(before:).md)
- [index(_:offsetBy:)](swift/string/index(_:offsetby:).md)
- [index(_:offsetBy:limitedBy:)](swift/string/index(_:offsetby:limitedby:).md)
- [formIndex(_:offsetBy:)](swift/string/formindex(_:offsetby:).md)
- [formIndex(_:offsetBy:limitedBy:)](swift/string/formindex(_:offsetby:limitedby:).md)
- [distance(from:to:)](swift/string/distance(from:to:).md)
