what is the difference between arrays,vectors and lists? - C#