Индекс находился вне границ массива в классах

Почему выводит, что индекс вне границ. Необходимо чтобы Player добавил к себе в инвентарь Item из массива продавца.

 static void Main(string[] args)
    {
        
        Player player1 = new Player(new Item[]
        {
            new Item("Apple")
        });

        player1.ShowInventory();
        Trader trader1 = new Trader(new Item[]
        {
            new Item("Cake"),
            new Item("Cola")
        });
        trader1.ShowShop();
        player1.Buy(trader1.TraderItems[0]);



        Console.ReadKey();
    }
}
public class Player
{
    public Item[] PlayerItems= new Item[4];
    public Player(Item[] playerItems)
    {
        PlayerItems = playerItems;
    }
    public void ShowInventory()
    {
        Console.WriteLine("Это ваш инвентарь");
        for (int i = 0; i < PlayerItems.Length; i++)
        {
            Console.WriteLine(i + " - " +PlayerItems[i].Name);
        }
    }
    public void Buy(Item buy)
    {

        PlayerItems[1] = buy;
        Console.WriteLine("Поздравляю вы купили " + buy.Name);
    }
}
public class Item
{
    public string Name;
    public Item(string name)
    {
        Name = name;
    }
}
public class Trader 
{
    public Item[] TraderItems;
    public Trader(Item[]traderItems)
    {
        TraderItems = traderItems;
    }
    public void ShowShop()
    {
        Console.WriteLine("Добро пожаловать в мой магазин");
        for (int i = 0; i < TraderItems.Length; i++)
        {
            Console.WriteLine(i+ " - " + TraderItems[i].Name);
        }
    }
}

В результате выполнения кода получаю ошибку на строке:Public void Buy(Item buy)


Ответы (0 шт):