In almost all cases the inventory bag will be some sort of Collection. List and array are the ones that are the most obvious to use for this. If the inventory has a fixed size I'd use an array, otherwise I'd use a List. You could either store the items as GameObject instances or prefabs, or you create a special container class for InvetoryItems. That's up to you.
How to fill that Collection is also up to you. You could do it by either clicking or colliding with an item, or you could assign items to it when the player reaches certain achievments. (Completing a mission etc.)