Get multiple conpoments from gameobjects

As title
How to get multiple conpoments from multiple gameobjects in array?
I did, but get NullReferenceException

 private GameObject[] Boxes;
 private Transform[] Box_Trans;
 private Rigidbody[] Box_Rigid;

 void Awake (){
	Boxes = GameObject.FindGameObjectsWithTag("Box");
	foreach(GameObject box in Boxes){
		int i = 0; 
		Box_Trans *= box.GetComponent<Transform>();*

Box_Rigid = box.GetComponent();
* i++;*
* }*
}

You haven’t created your arrays.

   void Awake (){
    Boxes = GameObject.FindGameObjectsWithTag("Box");
    Box_Trans = new Transform[Boxes.Length];
    Box_Rigid = new Rigidbody[Boxes.Length];
    foreach(GameObject box in Boxes){
       int i = 0; 
       Box_Trans *= box.GetComponent<Transform>();*

Box_Rigid = box.GetComponent();
i++;
}
}
Or use a Generic list that you can add to by doing using System.Collections.Generic - also you should really try to follow naming conventions - it really helps you and other people read your code.