none
Suche nach passendem Datentyp für eine Liste RRS feed

  • Frage

  • Hallo, ich suche einen Datentypen im Sinne einer List.

    Ich möchte unter einem Listtag einen int Wert speichern.
    Also z.B. eine Liste mit den Wochentagen Montag bis Sonntag als Listtag und dann einen Zähler vom Typ int pro Tag.

    Es soll möglich sein, pro Wochentag den Integer zu erhöhen, das könnte dann z.B. so aussehen:

    Besucher("Sonntag") = Besucher ("Sonntag") + 1

    Am Ende möchte ich das mit einem foreeach auslesen:

    foreach

     

    (int Anzahl in Besucher)
    {
       Console.WriteLine(Convert.ToString(Anzahl) + ", " + Listtag(Anzahl));
    }

    Das Ergebnis sieht so aus:

    5, "Montag"
    3, "Dienstag"
    0, "Mittwoch"
    2, "Donnerstag"
    7, "Freitag"
    6, "Samstag"
    9, "Sonntag"

     

    Da die Tags nicht im voraus feststehen, ist das mit einem Array wohl eher schwer zu realisieren. Deswegen die Idee, eine Liste zu nehmen.
    Aus einer anderen Programmiersprache kenne ich einen Listentyp, der das realisieren kann.
    Ich frage mich, ob das in C## auch so einfach möglich ist.

    Gruß und Dank

    G.

    Mittwoch, 13. April 2011 12:15

Antworten

  • Du könntest ein Dictionary benutzen.

    würde dann bsp. so aussehen:

    Dictionary<String, Int> variablenName=new Dictionary<String, Int>();
    

    Für die Werte würde ich dass dann so (oder so ähnlich) machen:

    if(variablenName.ContainsKey("WochenTag")
    {
     variablenName["WochenTag"]+=1;
    }
    else
    {
    variablenName.Add("WochenTag",Wert);
    }
    }
    

     

    Hoffe das hilft weiter...

     

    BP

    Mittwoch, 13. April 2011 12:51

Alle Antworten

  • Du könntest ein Dictionary benutzen.

    würde dann bsp. so aussehen:

    Dictionary<String, Int> variablenName=new Dictionary<String, Int>();
    

    Für die Werte würde ich dass dann so (oder so ähnlich) machen:

    if(variablenName.ContainsKey("WochenTag")
    {
     variablenName["WochenTag"]+=1;
    }
    else
    {
    variablenName.Add("WochenTag",Wert);
    }
    }
    

     

    Hoffe das hilft weiter...

     

    BP

    Mittwoch, 13. April 2011 12:51
  • Hallo,

    das genau habe ich gesucht - allerdings wäre ich nie von selbst auf den Begriff "Dictionary" gekommen.

    Vielen Dank für deine Hilfe

    G.

    Mittwoch, 13. April 2011 13:24
  • Hallo D.,

    BP hat schon die Antwort gegeben, ich möchte nur noch mal erwähnen, dass das .NET Framework hier einige Auflistungen schon selber hat - in multi-nationalen Szenarien kann sich ggf. der Name eines Wochentages ändern ... unsofern ist oft zu empfehlen, die Namen über das Framework zu benutzen:

       string[] namenDeutsch = new CultureInfo("de-DE").DateTimeFormat.DayNames; 
       string[] namenAktuelleKultur = CultureInfo.CurrentCulture.DateTimeFormat.DayNames;
       string[] namenInvariant = CultureInfo.InvariantCulture.DateTimeFormat.DayNames;
       int zahl = (int)DayOfWeek.Monday;
    

    ciao Frank
    Mittwoch, 13. April 2011 15:39
  • Merci Frank,

    die Wochentage waren nur ein Beispiel, damit mich jeder versteht. Aber auch dein Hinweis ist wichtig und hilfreich.

    Heute habe ich auf jeden Fall schon viel Neues gelernt und dafür dass es (seit langer Zeit) mein erstes Projekt mit VS unter Windows ist, bin ich mit dem Ergebnis recht zufrieden.

    Es fällt mir immer nur schwer, zwischen den verschiedenen Sprache zu wechseln ;-).

    LG

    G.

    Mittwoch, 13. April 2011 16:18