I would change this:
if(items[0] != null)
{
equippedItem = items[0];
}
To this:
if(items.Any() && items[0] != null)
{
equippedItem = items[0];
}
This will check if the list is initialized and has items. If it does have items, you can get the first item from the list.
And if you really want to get the first item from that list at all times, maybe use something like this:
InventoryItem equippedItem = items.FirstOrDefault();
if(equippedItem != null)
{
// Add some cool code
}
The FirstOrDefault gets the first item from a list. If there isn't a first item, the result will be the default value of the type (int = 0, bool = false, InventoryItem = null). You could also use First(), but that would throw an exception if there isn't a first (index 0).
I would try to avoid indexes as much as possible, because it's very sensitive for errors.