Autor Beitrag
gage
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Mi 28.10.09 21:14 
Hallo

ich möchte eine SortedList mit einer Do While Schleife befüllen. ich möchte Kundendaten (Name, Nachname, Straße, Wohnort) einelsen und abspeichern. Danach wird der Benutzer gefragt ob er die Schleife noch mal wiederholen will. Mein problem ist das ich eine Variable int Count habe und diese dann hochzählen lassen möchte. bei einem Weiteren Durchlauf aber wieder bei 0 angefangen wírd. da ich Count = 0 gesetzt habe. also befindet der zähler sich beim zweiten Durchlauf auf 1 und 1 ist schon belegt. macht es sin die SortedList zu verwenden oder gibt es für eine Liste eine Bessere möglichkeit. Ich möchte danach auch fragen ob der Name schon in der Liste vorhanden ist und den bestimmten Name wieder ausgeben.

Gruß
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 28.10.09 21:39 
:welcome:

Das verstehe ich noch nicht ganz. Du nimmst diese Count-Variable als Key der SortedList, also eine SortedList<int, *>? Dann sind die Einträge doch einfach nach Eingabereihenfolge geordnet, wo ist der Unterschied zu einer ganz normalen List<T>?

_________________
>λ=
gage Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Mi 28.10.09 22:00 
Ja ich habe einen Key der bei mir Count heißt und ein paar verschiedene Strings. Ich weiß ja selbst das das nicht die Lösung sein kann. bei jedem Schleifen Durchlauf erhöhe ich dann Count. beim zweiten durchlauf habe ich ja dann ein Problem.
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Mi 28.10.09 22:15 
Na dann spricht ja nichts gegen eine ganz normale List<T>, Count brauchst du dann überhaupt nicht mehr.

_________________
>λ=
gage Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Mi 28.10.09 23:37 
user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
Na dann spricht ja nichts gegen eine ganz normale List<T>, Count brauchst du dann überhaupt nicht mehr.


Ja ich habe es auch schon mal mit Arraylist versucht nur kann ich dann nicht auf bestimmte Elemte zugreifen. jetzt habe ich es auch mit List ausprobiert. aber ich bin noch nicht so zufrieden mit dem Code.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
string strasse;
    string name;
    string ort;
    string nachname;

        static public void Read(ref List<string> meineliste) { 
        Kunde Kundeneinlesen = new Kunde();
        Console.WriteLine("Bitte geben Sie den Vorname ein");
        Kundeneinlesen.name = Console.ReadLine();
        Console.WriteLine("Bitte geben Sie den Nachname ein");
        Kundeneinlesen.nachname = Console.ReadLine();
        Console.WriteLine("Bitte geben Sie den Ort ein");
        Kundeneinlesen.ort = Console.ReadLine();
        Console.WriteLine("Bitte geben Sie die Straße ein");
        Kundeneinlesen.strasse = Console.ReadLine();
        meineliste.Add(Kundeneinlesen.name);
        meineliste.Add(Kundeneinlesen.nachname);
        meineliste.Add(Kundeneinlesen.ort);
        meineliste.Add(Kundeneinlesen.strasse);



Hier fängt dann dann Main an:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
static void Main(string[] args)
        {
            
            List<string> meineListe = new List<string>();
            
            bool j = true;
            do
            {
                // Hier wird die Datei eingelesen
               
                Kunde.Read(ref meineListe);
                Console.WriteLine("Wollen Sie noch eine Kunden Anlegen? Bitte Ja (j) oder nein (n) eingeben?");
                if (Console.ReadLine() != "j")
                {
                    j = false;
                }
            }
            while (j);

            Console.WriteLine(meineListe.IndexOf(Console.ReadLine()));
            foreach (string na in meineListe)
            {
                Console.WriteLine(na);
            }
        }
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Do 29.10.09 00:37 
Dass du die einzelnen Angaben in einer Klasse sammelst, ist lobenswert :D . Nur warum machst du diesen guten Eindruck wieder kaputt, indem du das Objekt sofort wieder auseinander nimmst und alles einzeln in die Liste wirfst ;) ? Nimm eine List<Kunde>, dann fällt das Auslesen schon viel leichter.
Per ref musst du Klasseninstanzen übrigens nicht übergeben (zumindest in diesem Fall), denn es wird sowieso nur eine Referenz darauf übergeben.

user profile icongage hat folgendes geschrieben Zum zitierten Posting springen:
Ja ich habe es auch schon mal mit Arraylist versucht nur kann ich dann nicht auf bestimmte Elemte zugreifen.
Doch, nicht anders als bei List<T> ;) .

_________________
>λ=
gage Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Do 29.10.09 09:11 
user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
Dass du die einzelnen Angaben in einer Klasse sammelst, ist lobenswert :D . Nur warum machst du diesen guten Eindruck wieder kaputt, indem du das Objekt sofort wieder auseinander nimmst und alles einzeln in die Liste wirfst ;) ? Nimm eine List<Kunde>, dann fällt das Auslesen schon viel leichter.
Per ref musst du Klasseninstanzen übrigens nicht übergeben (zumindest in diesem Fall), denn es wird sowieso nur eine Referenz darauf übergeben.

user profile icongage hat folgendes geschrieben Zum zitierten Posting springen:
Ja ich habe es auch schon mal mit Arraylist versucht nur kann ich dann nicht auf bestimmte Elemte zugreifen.
Doch, nicht anders als bei List<T> ;) .


ja soweit ist mir das klar das ich das so machen möchte nur leider kann ich es nicht umsetzten in C#. Ich weiß schon das ich gerade nur jeden string nacheinander einlese. ich muss dann nur noch meineliste.Add(Kundeneinlesen.Kunden)sagen denke ich mal. aber das funktioniert noch nicht.
gage Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28



BeitragVerfasst: Do 29.10.09 17:12 
Ja jetzt habe ich das ganze mit Arraylist gelöst. jetzt möchte ich mit conatins und BinarySearch weitermachen. wie sieht die C# Syntax aus? habe schon bei msdn.microsoft.com nachgeshen. aber werde daraus nicht so ganz schlau. eigentlich wollte ich dann auch speziele daten wieder ausgeben. aber das geht ja nicht bei arraylist. oder?

!