Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C# Koordinaattien järjestely

make3003 [20.01.2010 17:24:24]

#

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

Grez [22.01.2010 00:41:57]

#

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
    }
}

make3003 [22.01.2010 13:17:48]

#

Kiitän ja kumarran, sain vihdoinkin pelittämään mitä halusin.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta