Подобно тому, как MoreON уже упоминался в комментариях, вы должны поменять местами элементы после того, как найдете минимальное значение.
Таким образом, это должно выглядеть так
public static List<double> selectionSort(List<double> data)
{
int count = data.Count;
// Console.WriteLine(count);
for (int i = 0; i < count - 1; i++)
{
int min = i;
for (int j = i + 1; j < count; j++)
{
if (data[j] < data[min])
min = j;
}
double temp = data[min];
data[min] = data[i];
data[i] = temp;
}
return data;
}
Но если вы не хотите изобретать велосипед, вы также можете использовать:
var sorted = x.OrderBy(o => o).ToList();