Miten voidaan järjestellä koordinaatti (esim. Point) taulukko ensin x:n mukaan ja sitten y:n mukaan.
Alkutilanne:
X,Y
0,2
1,3
0,1
1,2
Loppu tulos olisi:
X,Y
0,1
0,2
1,2
1,3
En ole löytänyt esimerkkejä miten kyseinen onnistuisi, joten vinkkejä kaivataan.
Käytössä on .NET 2.0
Esimerkiksi jotenkin tähän tyyliin:
using System; using System.Collections.Generic; using System.Text; namespace PointSorter { class Program { static void Main(string[] args) { Point[] Jipii = new Point[20]; //Laitetaan Point-taulukkoon jotain arvoja for (int i = 0; i < 20; i++) { Jipii[i] = new Point(); Jipii[i].X = i % 3; Jipii[i].Y = i / 3; } Array.Sort(Jipii); } } class Point : IComparable { public long X; public long Y; #region IComparable Members public int CompareTo(object obj) { if (obj is Point) { Point point = (Point)obj; if (point.X < this.X) return 1; if (point.X > this.X) return -1; if (point.Y < this.Y) return 1; if (point.Y > this.Y) return -1; return 0; } else throw new ArgumentException("object is not a Point"); } #endregion } }
Kiitän ja kumarran, sain vihdoinkin pelittämään mitä halusin.
Aihe on jo aika vanha, joten et voi enää vastata siihen.