Leveraging Lists

First off, Lists are not limited to a type, they can contain full class objects.
String[] lists are very useful but limited to the TYPE of the item you are working with. (bool, string, int, etc)
String[]'s do not allow sorting either.
This is where Lists come in and are quite useful. Lists can also include string[]s...
Unlike the string[] ,the full length of the List Object is not .Length, but .Count. Simple enough.
So if you were looping through a list you would use:

Say you have created a new class called car and it contains the properties
string[] colors
string make
string model
You can pull back a list of cars which include all of those wonderful properties by sending them in a list:
This will sort the cars by make as long as you have set up reflection to sort by make.
Simple Lists

This will include a list of strings that you can sort and is based on the Type of string and will allow a sort because it already contains reflection being just the string items themself.

In the car example above, you can act on each of the properties return in each "car" class object. It is a wonderful thing!
You will see this used over and over again in coding and it is something that you should be familiar with.

When I create a class, I always create a list method within the class. This way instead of return just the item you return it as a list.,
In turn, I normally always call the list over the single item.
This will be the same whether you are creating a console app, web app or mobile app and will float across most of the coding platforms.
More to come..