I'm new in C# and have a Issue with my coding. I got an error during runtime. It's seems object array isn't assigned. Any help/hints are welcome. I have a class "Building" with fix rooms. No change or additional rooms are foreseens. The rooms are discribed by a lots of attributes. In my "Home" class I want to access all in rooms via object array and also specific rooms. Thanks in advance:
Class Home
{
private void StartProgramm()
        {
            //get all Objects of class "Building"
            Building[] building = Building.Buildings;
            //System.NullReferenceException during runtime
            set_label_header(building[0].Name);
            //Access to room1
            Building room1 = Building.room1;
            set_label_header(room1.Name);
            //Get room2
            Building room2 = Building.GetBuilding("room2");
            set_label_header(room2?.Name);
         }
}
    class Building
    {
        public string Name { get; set; }
        public ArrayList tool_groupList = new ArrayList();
        public ArrayList pos_List = new ArrayList();
        public ArrayList inv_list = new ArrayList();
        public static Building room1;
        public static Building room2;
        public static Building[] Buildings;
    public Building()
            {
            //create room 1 and add some attributes
            room1 = new Building { Name = "room1" };
            room1.tool_groupList.Add(1);
            room1.tool_groupList.Add(2);
            room1.pos_List.Add(14);
            room1.pos_List.Add(15);
            room1.pos_List.Add(16);
            room1.pos_List.Add(17);
            Iventory[] inventories = Inventory.get_inventories();
            room1.areaList.AddRange(inventories);
            //create room 2 and add some attributes
            room2 = new Building { Name = "room2" };
            room2.tool_groupList.Add(2);
            room2.pos_List.Add(1);
            room2.pos_List.Add(2);
            room2.pos_List.Add(9);
            room2.pos_List.Add(10);
            room2.pos_List.Add(13);
            room2.pos_List.Add(14);
            room2.pos_List.Add(15);
            room2.pos_List.Add(16);
            Iventory[] inventories = Inventory.get_inventories();
            room2.areaList.AddRange(inventories);
            //Array with all rooms
            Buildings = new Building[] { room1, room2 };
        }
        //get single room by name
        public static Building GetBuilding(string name)
        {
            foreach (Building Building in Buildings)
            {
               if( Building.Name != null && Building.Name.Equals(name, StringComparison.OrdinalIgnoreCase))
                {
                    return Building;
                }
            }
            return null;
        }
    }
 
    