I am trying to create a sublist from a larger list using `linq`

```
List<ScenarioDetailModel> chartScenarioDetailsList = new List<ScenarioDetailModel>();

List<ScenarioDetailModel> subList = new List<ScenarioDetailModel>();
subList = chartScenarioDetailsList.Where(s => s.Code == "C3");

```

Both `chartScenarioDetailsList` and `subList` are of the same type but the compiler complains about type conversions and won't compile, the error is as follows:

> 
> Error 190 Cannot implicitly convert type 'System.Collections.Generic.IEnumerable' to 'System.Collections.Generic.List'. An explicit conversion exists (are you missing a cast?)
> 
> 
> 

However, it compiles when I change the sublist's type from `List` to `IEnumerable`:

```
IEnumerable<ScenarioDetailModel> subList = new List<ScenarioDetailModel>();
subList = chartScenarioDetailsList.Where(s => s.Code == "C3");

```

My question is: why does this happen?