Entwickler-Ecke

Basistechnologien - ArrayList in Struktur


Rassi - Mo 03.11.08 11:33
Titel: ArrayList in Struktur
Hallo.

Wie bekomme ich eine (oder mehrere) ArrayList in einer Struktur unter?

Ziel ist es, dass diese Strktur im Quellcode deklariert werden, und dann darauf zugegriffen werden kann.

Ich habe das bisher so:



C#-Quelltext
1:
2:
3:
4:
5:
public struct struArbeitsschritt_resoutcenart_zeit_Array
  {
    public ArrayList iID;
    public ArrayList iID_Arbeitsschritt;
  }


Im Code deklariere ich die Struktur:


C#-Quelltext
1:
2:
3:
4:
5:
struArbeitsschritt_resoutcenart_zeit_Array Daten;

Daten.iID.Add(5);
Daten.iID.Add(7);
Sortierfunc.Parallelen_Arbeitsschritt_suchen(Daten);


Hier meckert der Compiler!

Es geht zwar so:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
struArbeitsschritt_resoutcenart_zeit_Array Daten;

Daten.iID_Arbeitsschritt= new ArrayList();
Daten.iID= new ArrayList();
Daten.iID.Add(5);
Daten.iID.Add(7);
Sortierfunc.Parallelen_Arbeitsschritt_suchen(Daten);


Kann das einzelne Zuweisen umgangen werden, so dass das nicht immer bei jeder Deklaration für alle ArrayList gemacht werden muss? Schön wäre es, wenn nur deklariert werden muss, und das wars.


Gruß
Rasmus

Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt


Th69 - Mo 03.11.08 12:46

Irgendwo muß die Liste nun mal erzeugst werden, aber du könntest es direkt bei der Deklaration machen:

C#-Quelltext
1:
2:
3:
4:
5:
public struct struArbeitsschritt_resoutcenart_zeit_Array  
{  
    public ArrayList iID = new ArrayList();
    public ArrayList iID_Arbeitsschritt = new ArrayList();
}

Und noch ein Hinweis:
Sofern du nicht mehr unter .NET 1.1 arbeitest, solltest du so schnell wie möglich auf die generischen Listen umsteigen!!!

C#-Quelltext
1:
2:
3:
4:
using System.Collections.Generic;

public List<int> iID = new List<int>();
...


Rassi - Mo 03.11.08 13:03

Hallo.

Danke für die Antwort.

Zu 1:
Habe ich versucht, nur wenn ich es in der Deklaration der Struktur mache, bekomme ich eine Fehlermeldung:

D:\temp\Software\Appel_Datenbank\Software_Datenbank\WindowsApplication1\Sortierung.cs(16): 'WindowsApplication1.struArbeitsschritt_resoutcenart_zeit_Array.iID': Instanzenfeld-Initialisierung kann nicht in Strukturen sein


Zu 2:
Werde ich mir sofort anschauen, was hier der Unterschied ist, bzw. die Vorteile sind, da ich jetzt erst anfange die ArrayList im Programm zu verwenden.

Ich verwende noch VS2003, und damit ist wohl die Verwendung von List nicht machbar! Oder liege ich da falsch?


Gruß
Rasmus


Kha - Mo 03.11.08 14:46

user profile iconRassi hat folgendes geschrieben Zum zitierten Posting springen:
Ich verwende noch VS2003, [...]
Uff.

Macht es denn Sinn, hier eine Struktur statt einer Klasse zu benutzen? Wenn nicht, dann kannst du es wie von Th69 vorgeschlagen machen.