myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Grundlagen von C# » Liste zweidimensionaler Punkte in einer ArrayList
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

geschlossen (weitere Infos)
Zum Ende der Seite springen  

Liste zweidimensionaler Punkte in einer ArrayList

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
cmfrank
myCSharp.de-Mitglied

Dabei seit: 10.02.2019
Beiträge: 1


cmfrank ist offline

Liste zweidimensionaler Punkte in einer ArrayList

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo zusammen,

ich bin noch relativ unvertraut mit der Programmierung in C# und stehe nun zum üben vor der Aufgabe, eine Liste zweidimensionaler Punkte in einer ArrayList zu sortieren.
Ein Punkt P1 ist dabei "kleiner" als ein zweiter Punkt P2, falls P1 . y < P2 . y. Falls P1 . y == P2. y, werden die x-Koordinaten vergleichen.
Ich habe das Programm dazu schon geschrieben. Es soll zehn zufällig erzeugte Punkte sortieren und diese jeweils vor und nach der Sortierung auf der Konsole ausgeben. Leider funktioniert das Programm noch nicht ganz. Kann mir jemand sagen, wo ich Fehler gemacht habe? smile

C#-Code:
using System;
using System.Collections;

public class Point {
     public int x;
     public int y;

     public Point(int x, int y) {
          x = x;
          y = y;
     }
     public string ToString() {
          return x + "," + y;
            }
}
public class ArrayListTest {

     public static void Main(string [] args) {

        ArrayList AL = new ArrayList();
        Random R = new Random();
        for (int i = 0; i < 10; i++) {
            Point p = new Point(R.Next(50), R.Next(50));
            AL.Add(p);
        }
        PrintValues(AL);
        AL.Sort();
        PrintValues(AL);
   }

public static void PrintValues( IEnumerable myList ) {
           foreach ( Object obj in myList )
              Console.WriteLine( "{0}", obj );
           Console.WriteLine();
     }
}
10.02.2019 21:16 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
ThomasE. ThomasE. ist männlich
myCSharp.de-Mitglied

avatar-178.gif


Dabei seit: 26.11.2013
Beiträge: 446
Entwicklungsumgebung: Visual Studio 2015Pro/2017Ent


ThomasE. ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,

was du hier versuchst ist, Klassenobjekte zu sortieren und nicht die Klassenobjekte durch seine Klassen-properties.

Das  ArrayList.Sort nimmt dir diese Arbeit nicht ab!

Es wird dir nicht viel übrig bleiben als selbst zu sortieren.
Jetzt stellt sich die Frage, wie deine Aufgabe deklariert ist? Gibt es da Vorgaben?

Grüße
11.02.2019 01:22 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
LaTino LaTino ist männlich
myCSharp.de-Poweruser/ Experte

avatar-4122.png


Dabei seit: 03.04.2006
Beiträge: 2.989
Entwicklungsumgebung: Rider / VS2019 / VS Code
Herkunft: Thüringen


LaTino ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Bitte, bitte ArrayList nicht mehr verwenden. Die Klasse ist eigentlich seit der Einführung von generic collections vor 13 Jahren veraltet.

 Kurzes Tutorial, das den Umstieg skizziert

Wenn du mit Hilfe von generics sichergestellt hast, dass alle Objekte in deiner Sammlung vom selben Typ sind, dann kannst du sie auch viel einfacher sortieren, indem du nur noch angibst, wie zwei Elemente dieses Typs zu vergleichen sind. Für solche Vergleiche gibt es auch schon eine Vorgabe:  Comparison<T>. Damit benutzt du dann die Sort(Comparison<T>)-Methode deiner generischen Liste.

LaTino
11.02.2019 07:29 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Zwischen diesen beiden Beiträgen liegen mehr als 7 Monate.
Gast123
myCSharp.de-Mitglied

Dabei seit: 24.09.2019
Beiträge: 1


Gast123 ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

ich habe die gleiche Aufgabe wie cmfrank gestellt bekommen. Im von cmfrank C#-Code sind laut der Aufgabenstellung drei Fehler enthalten.

Kann mir jemand weiterhelfen wo die drei Fehler sind, um es zum laufen zu bringen?
24.09.2019 12:23 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 13.575
Herkunft: Stuttgart/Stockholm


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hi, das Forum ist nicht dazu da, dass es Deine Hausaufgaben macht.
 [Hinweis] Wie poste ich richtig? 4.2. Wälzt nicht eure Aufgaben auf uns ab

Aber gut zu wissen, dass cmfrank hier offenbar das Forum ausnutzen und hinters Licht führen wollte.
24.09.2019 12:29 Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als ein Jahr.
Der letzte Beitrag ist älter als 6 Monate.
geschlossen (weitere Infos)


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 01.04.2020 02:51