# List vs. ForEach

{% hint style="info" %}
* <mark style="color:red;">**ForEach**</mark> is a view that lets you pass a **collection of data** to its initializer and then creates multiple "**subviews**" from the closure you provide.
* [**List**](../../../lists/list) is a view that can **compose multiple views** together, but <mark style="color:red;">**not**</mark> necessarily views <mark style="color:red;">**of the same type**</mark>. You can simply add multiple views without any loop.
* As a _convenience_, the [**List**](../../../lists/list) initializer allows you to use it just like the <mark style="color:red;">**ForEach**</mark> view in case you want to have a list consisting **of a single type** only.Exam`ForEach` is a structure that computes views on demand from an underlying collection of identified data. There are **three ways** to initialize `ForEach`. Each of them might seem different, but they all shared the same purpose: defining a data and its (`Hashable`) identifier.
{% endhint %}
