Pick up Items and Deep Copies

I tried to make a 2d plattformer with Pickup items. When the player collides with some Item, he is supposed to add this item into his inventory(array called items) and delete that item in the game. So i tried to make deep copies of that item into the inventory and failed to do so. The inspector shows the added items as “none” or missing" The other threads here didnt helped me too much. So this are the codes for that:

 public bool AddItem(Pickup item)
    {//returnt ob aufgehoben wird
        for (int i = 0; i < items.Length; i++)
        {
            if (item.Itemname == items*.Itemname)*

{
if (items_.Maxstack == items*.Count)
{
items.Count = items.Count + item.Count;
return false;
}
else
{
items.Count = items.Count + item.Count;
return true;
}*_

}

}

Resize(items.Length + 1, ref items);
items[items.Length -1] = item.Clone() as Pickup;
return true;
}
private void Resize(int Size, ref Pickup[] itemss)
{

Pickup[] temp = new Pickup;
for (int c = 1; c < Mathf.Min(Size, itemss.Length); c++)
{
temp
```c
* = itemss[c].Clone()as Pickup;
}
itemss = temp;
}

and the .clone();

   public object Clone()
            {
                return MemberwiseClone();
            }

If it helps i can show my entire unity project aswell (Teamviewer or upload). I will back in a couple of hours.
_```*_

I solved the problem myself after some time. Hope it will help someone… I threw the Clone-Funktion away and made myself a constructor. So i can use classA Acopy = new ClassA(A). Caution: The new Object triggers start and awake.

Thats my constructor:

public Pickup(Pickup previousPickup)
    {
        onplayer = previousPickup.Onplayer;
        player = previousPickup.player;
        Count = previousPickup.Count;
        Maxstack = previousPickup.Maxstack;
        Kaufpreis = previousPickup.Kaufpreis;
        Vkpreis = previousPickup.Vkpreis;
        Itemname = previousPickup.Itemname;
    }