---
title: "init(_:selection:columns:)"
framework: swiftui
role: symbol
role_heading: Initializer
path: "swiftui/table/init(_:selection:columns:)"
---

# init(_:selection:columns:)

Creates a table that computes its rows based on a collection of identifiable data, and that supports selecting multiple rows.

## Declaration

```swift
nonisolated init<Data>(_ data: Data, selection: Binding<Set<Value.ID>>, @TableColumnBuilder<Value, Never> columns: () -> Columns) where Rows == TableForEachContent<Data>, Data : RandomAccessCollection, Columns.TableRowValue == Data.Element
```

## Parameters

- `data`: The identifiable data for computing the table rows.
- `selection`: A binding to a set that identifies selected rows IDs.
- `columns`: The columns to display in the table.

## See Also

### Creating a table from columns

- [init(_:columns:)](swiftui/table/init(_:columns:).md)
