Cześć,
muszę posortować koordynacje (x,y,z).
Mam zrobione sortowanie, że porównuję x do x, ale muszę zrobić tak, żeby sortowało po x, ale jak są równe to przechodzi do y.
class Program
{
static void Main(string[] args)
{
//int space;
int t = int.Parse(Console.ReadLine());
List<Wspolrzedne> list = new List<Wspolrzedne>();
for (int i = 0; i < t; i++)
{
string[] tab = Console.ReadLine().Split(' ');
Wspolrzedne wspolrzedne = new Wspolrzedne(int.Parse(tab[0]), int.Parse(tab[1]), int.Parse(tab[2]));
list.Add(wspolrzedne);
}
list.Sort();
list.ForEach(wspolrzedne => Console.WriteLine("{0} {1} {2}", wspolrzedne.X,wspolrzedne.Y, wspolrzedne.Z));
Console.ReadKey();
}
public class Wspolrzedne
{
public int X { get; set; }
public int Y { get; set; }
public int Z { get; set; }
public Wspolrzedne(int x, int y, int z)
{
X = x;
Y = y;
Z = z;
}
public int CompareTo(Wspolrzedne other)
{
return X.CompareTo(other.X);
}
}
Nie wiem jak wrzucić sortowanie bąbelkowe do środka. Mam coś takiego:
var array = list.ToArray();
for (int i = 0; i < array.Length; i++)
{
for (int j = 0; j < array.Length - 1; j++)
{
if (array[j] > array[j + 1])
{
space = array[j + 1];
array[j + 1] = array[j];
array[j] = space;
}
}
}
Czy wrzucać listę do tablicy? Czy moglibyście delikatnie nakierować, czy to w ogóle idzie w dobrą stronę? Czy wybrać inne sortowanie do tego(np. przez wybieranie)?