This
int.Parse(list[i]);
translates each string to an int, but what are you doing with the resulting ints ?
About the algorithm: in order to find the 3 smallest numbers, you don't need to store the whole list in an array and sort it.
You just need 3 variables or an array of size 3 and only store the 3 smallest numbers as you read numbers from the list.
If it looks too complicated to you, start with a program to get the smallest number, then build on it to get the 2 smallest numbers, and end with the 3 smallest numbers.
Removing the need to sort is a big time saver for large list.