<p>I have been learning about the basics of C# but haven't come across a good explanation of what this is:</p>

<pre><code>var l = new List&lt;string&gt;();
</code></pre>

<p>I don't know what the <code>&lt;string&gt;</code> is doing or if it's the <code>List</code> that is doing the magic. I have also seen objects been thrown within the <code>&lt; &gt;</code> tags.</p>

<p>Can someone explain this to me with examples, please?</p>

This is .NET Generics.  The type within the < > denotes the type of element contained in the list.
with ArrayList you'd have to cast the elements inside...
```
```
int x = (int)myArrayList[4];
```
```
with List you can avoid that step because the compiler already knows the type.
```
```
int x = myList[4];
```
```
Generics are available in .NET 2.0 and later.