Array füllen

Danke :) ich poste mal mein Code
C#:
class Favorite
    {
        string name;
        Uri url;

        public Favorite(string name, Uri url)
        {
            this.name = name;
            this.url = url;
        }

        public string Name
        {
            get { return name.ToString(); }
            set { name = value; }
        }

        public Uri URL
        {
            get { return url; }
            set { url = value; }
        }

        public void Open()
        {
            Process.Start(url.ToString());
        }

        public String toString()
        {
            return this.name + " " + this.url;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            int zahl;
            Console.WriteLine("Anzahl der zu speichernden Favoriten");
            zahl = Convert.ToInt32(Console.ReadLine());

            Favorite[] favarray = new Favorite[zahl];
            for (int i = 0; i < zahl; i++)
            {
                favarray[i] = new Favorite(Console.ReadLine(), new Uri(Console.ReadLine()));
            }

            foreach (Favorite i in favarray)
            {
                Console.WriteLine(i.toString());
            }

            Console.ReadKey();
        }
    }

Ist das so richtig wie ich das gemacht habe ?
Sagen wir mal ich habe in meinem Array 9 Objekte drin. Wie kann ich auf das 7 Objekt des Arrays zugreifen ?
 
Zuletzt bearbeitet:
Über den Indexer (oder anders gesagt über die interne Elementnummer / Position im Array)

favarray[7]
Code:
Console.WriteLine(favarray[7].toString());
 
Beispiel: Ich gebe als Anzahl der zu speichernden Favoriten die Zahl 3 ein
Dann schreibe ich in das favarray [ ] z.B.
Titel Adresse
Yes | www.yes.com
No | www.no.com
maybe | www.maybe.com

Wenn ich nun aus dem Array den Titel No mit der entsprechenden Adresse haben möchte gebe ich

C#:
foreach (Favorite i in favarray)
            {
                Console.WriteLine(favarray[1].toString());
            }

Das Ergebnis lautet aber:
No | www.no.com
No | www.no.com
No | www.no.com

Wieso wird das Ergebnis so dargestellt ?
Ich möchte nur einmal den Wert haben
 
Hi!

Wieso wird das Ergebnis so dargestellt ?
Ich möchte nur einmal den Wert haben
Ganz einfach:

Du hast drei Elemente in deinem Array mit den Indexen 0=Yes, 1=No und 2=maybe (du fängst ja bei 0 an zu Zählen bei Arrays).
In deiner foreach Schleife holst du dir jedes Element und speicherst es in der Variable i. Da du drei Elemente hast, läuft die Schleife 3 mal durch. Nun gibst du aber jedes mal den Wert von favarray[1] aus, also das 2. Element = No.

Jetzt klarer?

Wenn du also nur ein Element willst dann brauchst du natürlich auch keine foreach Schleife mehr, in der alle ausgegeben werden ;)

Gruß
Daniel
 
Zurück