C# - Arraylist in Member einer anderen Klasse nutzen



  • Hallo, ich versuche ein Arraylist in einer anderen Klasse einzulesen.
    leider klappt das nicht. die Arraylist hat eine structur, die ich in der Klasse der Arraylist als public deklariert habe.

    WIe rufe ich diese arraylist nun in einer Methode einer anderen Klasse auf?
    Sry, bin Klassentechnisch noch ein Anfänger..



  • Erstens, die ArrayList ist veraltet und sollte nicht mehr verwendet werden. Nutze stattdessen typisierte Listen aus dem Namespace System.Collections und System.Collections.Generic.

    Ansonsten solltest du auch zeigen, wie du versuchst Einträge aus der ArrayList zu lesen.

    Folgendes z.B. funktioniert nämlich problemlos:

    public class ListPrinter
        {
            public void Print(ArrayList data)
            {
                foreach (var entry in data)
                    Console.WriteLine(entry);
            }
    
            public void Print(ArrayList data, int index)
            {
                Console.WriteLine(data[index]);
            }
        }
    
     static void Main(string[] args)
            {
                ArrayList stringList = new ArrayList();
                for (int i = 0; i < 10; i++)
                {
                    stringList.Add("Test " + i);
                }
    
                ListPrinter printer = new ListPrinter();
                printer.Print(stringList, 1);
                printer.Print(stringList);
    
                Console.ReadLine();
            }
    

    Und um dir gleich wie vorgeschlagen die richtigere Klasse zu empfehlen:

    public class ListPrinter
        {
            public void Print(IEnumerable<Object> data)
            {
                foreach (var entry in data)
                    Console.WriteLine(entry);
            }
    
            public void Print(IEnumerable<Object> data, int index)
            {
                Console.WriteLine(data.Skip(index).First());
            }
        }
    
    static void Main(string[] args)
            {
                List<string> stringList = new List<string>();
                for (int i = 0; i < 10; i++)
                {
                    stringList.Add("Test " + i);
                }
    
                ListPrinter printer = new ListPrinter();
                printer.Print(stringList, 1);
                printer.Print(stringList);
    
                Console.ReadLine();
            }
    

Log in to reply