The program has two modes of operation for the general public, and for Airbnb staff.
The data file's content contains district names, the number of neighborhoods in that district, neighborhood names, the number of properties in the neighborhoods, and then 11 different pieces of information regarding the properties. These are all structured line by line. The program reads the data in line by line using a StreamReader. There is a while loop that checks to make sure the last line of the file hasn't been reached. There are then two for loops that iterate over the neighborhood and property information. A global district array is used to store district objects, which contain neighborhood objects, which contain property objects. These are then indexed and accessed using the listview components.
The main form features a search feature that works using the substring method. We weren't allowed to use the "contains" method as it'd be considered a shortcut, so I thought I'd use substring to give the same effect of filtering out items based on the user's search query with each keystroke.
The tool also features an analysis page where the user can see which districts have the most neighborhoods and which neighborhoods have the most properties.