Autor Beitrag
Rassi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 79



BeitragVerfasst: Mo 03.11.08 11:33 
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:


ausblenden 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:

ausblenden 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:

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4806
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mo 03.11.08 12:46 
Irgendwo muß die Liste nun mal erzeugst werden, aber du könntest es direkt bei der Deklaration machen:
ausblenden 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!!!
ausblenden C#-Quelltext
1:
2:
3:
4:
using System.Collections.Generic;

public List<int> iID = new List<int>();
...
Rassi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 79



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: 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.

_________________
>λ=