Ist es möglich ein 2-dimmensionales Array in einer ArrayList zu speichern?

MichiStroi

Erfahrenes Mitglied
Hallo!

Ist es möglich ein 2-dimmensionales Array in einer ArrayList zu speichern?

Besten Dank für eure Beiträge

Grüße
Michi
 
Hab ich, allerdings hat's bei...

private ArrayList ServerDLIntensity(int PID)
{
:
:
ArrayList gesammelt = new ArrayList();
gesammelt[0] = x;
gesammelt[1] = y; // =>>> double[,] 2-dimmensional!
gesammelt[2] = ServerSportarten(PID);
return(gesammelt);
}

private void IchMöchtsHierwiederRausladen ()
{
:
:
ArrayList gesammelt = ServerDLIntensity(PID);
double[,] y = gesammelt[1];
}

...nicht funktioniert
Fehlermeldung: Implizite Konvertierung des Typs 'object' zu 'double[*,*]' nicht möglich.

Kann ich das Array wieder so auslesen wie ich es darin abgespeichert hab oder muss ich das dann gar deserialisieren?

Danke
Michi
 
Perfekt! ;-]

Wie nennt sich soetwas eigentlich?
Kann man da irgendwo mehr darüber lesen?

Danke
Michi

PS: Nochwas...
Ich hab diese Klasse in einer eigenen Datei geschrieben (DLServer.cs)
Die Klassen sind zwar public, allerdings ansprechen kann ich diese dennoch nicht.
Weist du hier vielleicht auch weiter?
 
Zuletzt bearbeitet:
Es gibt einmal die implizite Konvetierung von Typen, welche automatisch vom Compiler ausgeführt wird. Bei diesen Konvertierungen kann nicht viel 'passieren'. Zum Beispiel von 'int' nach 'long'. 'long' hat einen höherne Wertbereich als 'int'.

Die explivzite Konvertierung (casting) muss man selbst durchführen.
Zum Beispiel eine Konvertierung von 'int' nach 'short' (dessen Wertbereich kleiner als der von int ist).

Code:
short s = 0;
int i;

s = i //Fehler
s = (short) i; //Casting

//EDIT

MichiStroi hat gesagt.:
Ich hab diese Klasse in einer eigenen Datei geschrieben (DLServer.cs)
Die Klassen sind zwar public, allerdings ansprechen kann ich diese dennoch nicht.
Weist du hier vielleicht auch weiter?

Sollte aber eigentlich klappen :)
Liegt auch beides im selben Namespace?
 
Zuletzt bearbeitet:
Ja, es handelt sich dabei um den gleichen Namespace...

Datei DLServer.cs
- namespace TD2005novem
- public class DLServer
- public int GetPersonIDfromName(string Name)

Datei BS1.cs
- namespace TD2005novem
- public class BS1 : System.Windows.Forms.Form
- private void ServerPersonenClick(object sender, System.EventArgs e)
von hier aus möcht ich : PID = GetPersonIDfromName(mnu.Text); ausführen.

Ich erhalte aber diese Fehlermeldung beim Compilieren:
D:\C#\TD2005novem\BS1.cs(1134): Der Name 'GetPersonIDfromName' besteht nicht in der Klasse oder dem Namespace 'TD2005novem.BS1'

Muss ich da nicht noch mit using... irgendwie auf die andere Class DLServer verweisen?

Danke
Michi
 
Für den Compiler ist es letztendlich egal, ob der Quellcode über mehrere Dateien verteilt ist oder nicht. Für ihn ist alles 'eins'.
Schau dir mal folgendes Programm an. Das sollte dir helfen:

Code:
using System;

namespace ConsoleApplication1
{
   public class Class2
   {
      // Methode gehört nicht zur Klasse selber, sondern nur zu einer Instanz
      // der Klasse
      public void test()
      {
         Console.WriteLine("HU");
      }
		
      // Methode gehört zur Klasse selber (da Schlüsselwort 'static') 
      // und kann über diese aufgerufen werden
      public static void test2()
      {
         Console.WriteLine("HU");
      }

   }

	
   class Class1
   {
      private static void Main()
      {
         //Methode test wird in der aktuellen Klasse gesucht
         test();  //Fehler
			
         //Ein Objekt wird erstellt und die Methode aufgerufen
         Class2 c2 = new Class2();
         c2.test(); 

         //Die statische Methode wird über die Klasse aufgerufen
         Class2.test2();
      }
   }
}
 
Yeah! Did it....

hab es auf:
public static int GetPersonIDfromName(string Name)

abgeändert, jetzt lässt sich darauf zugreifen.

Michi
 
Ok - fast zeitgleich...

Ich werd mir mal dein Beispiel genauer anschauen, vielleicht komm ich dann dahinter warum ich das static unbedingt brauch.

Danke
Michi
 
Zurück