Variablen indizieren

Tex_Murphy

Mitglied
Tut mir leid, wenn ich Euch mit meinen Problemchen das Forum zumülle, aber nach 2 Tagen erfolglosem Suchen sehe ich mich zu folgender Frage gezwungen:

Wie kann ich in C# Variablen indizieren?

Sprich: Ich habe die Variable test, und möchte ihr 10 verschiedene Werte zuordnen.
Hmmm.... etwas unglücklich ausgedrückt.
In c++ geht es glaube ich einfach per

int test[10];

Und in VB würde ich

Dim test(10);
test(1) = 1
test(2) = 2
test(3) = wasweißichwas
...

verwenden.

Aber wie geht das in C#? Kann doch so kompliziert garnicht sein!
 
Moin!

Sag mal, hast Dich schonmal mit den Grundlagen von C#
und ganz besonders der Objekthierarchie auseinander gesetzt?
Du kannst auch IMO nicht in cpp irgend welche Objkete in einem IntArray ablegen.
Es, sei denn sie ließen sich explizit casten.

Was deinem VB Beispiel nahe kommen würde, währe ein ObjektArray herzunehmen,
da Object die Basis aller Klassen im Framework ist.

Um herrauszufinden welcher ObjektTyp sich in dem Array befindet hast die Operatoren is und as zur Verfügung.
Bsp.:
C#:
if ( objArray[1] is typeof(string) )
	Console.WriteLine( ((string)objArray[1]) );
oder
C#:
string myString;
myString = objArray[1] as string;
if ( myString != null )
	Console.WriteLine( ((string)objArray[1]) );
P.S: zZ machen die CodeTags was sie wollen.
Zitiere es einfach. Du solltest den Code dann ohne die Fehler sehen können.

MfG,
cosmo
 
cosmochaosmaker hat gesagt.:
Moin!

Sag mal, hast Dich schonmal mit den Grundlagen von C#
und ganz besonders der Objekthierarchie auseinander gesetzt?
Ich fürchte fast nein - offensichtlich zumindest nicht in ausreichendem Maße. Ich dachte, es würde ein bißchen per "learning by doing" funktionieren, aber ich muss wohl erkennen, daß die gesamte Struktur weitaus komplizierter ist, als ich annahm.
Ich schätze, ich muß mich wohl doch noch ein bißchen mit meiner Literatur ("Visual C# - Schritt für Schritt" und "Das C# Codebook") auseinandersetzen.
Schade ist nur, daß man bei ersterem das Wissen einfach so hingeknallt bekommt, und die eigenen Arbeitsschritte als "Geben Sie folgendes ein:..." vorgegeben bekommt.
Ich hätte mir gewünscht, statt exakter Vorgaben eine Aufgabe vom Buch vorgegeben zu bekommen, die dann mittels des Erlernten gelöst werden soll.

Aber das gehört hier nicht hin, vielen Dank erstmal.
 
Hi

Also es geht sowohl in C++ als auch in C# in Array anzulegen, das Werte verschiedenen Datentyps enthält.

In C++ gibt es den Datentyp VARIANT, der die das ermöglicht.
In C# kannst du die Angelegenheit, wie cosmo schon sagte, mit einem object-Array erledigen.

Eine andere Möglichkeit, du verwendest eine List oder ArrayList.
 
niggo hat gesagt.:
Eine andere Möglichkeit, du verwendest eine List oder ArrayList.
Die kannst auch als Basis hernehmen und erweitern,
um somit die Typen der Sammlung im CodeBehind einzugrenzen zu können
oder gar auf einen Typ einzuschränken. Samt der Überprüfung der zu speichernen Objekte.
Bsp: [thread=232634]Array "Sortieren" - Thread[/thread]
Da findest auch einen Link der Dir die Sammlungen des Frameworks näher erläutert. :)

MfG,
cosmo
 
Tex_Murphy hat gesagt.:
Ich fürchte fast nein - offensichtlich zumindest nicht in ausreichendem Maße. Ich dachte, es würde ein bißchen per "learning by doing" funktionieren, aber ich muss wohl erkennen, daß die gesamte Struktur weitaus komplizierter ist, als ich annahm.
Ich schätze, ich muß mich wohl doch noch ein bißchen mit meiner Literatur ("Visual C# - Schritt für Schritt" und "Das C# Codebook") auseinandersetzen.
Schade ist nur, daß man bei ersterem das Wissen einfach so hingeknallt bekommt, und die eigenen Arbeitsschritte als "Geben Sie folgendes ein:..." vorgegeben bekommt.
Ich hätte mir gewünscht, statt exakter Vorgaben eine Aufgabe vom Buch vorgegeben zu bekommen, die dann mittels des Erlernten gelöst werden soll.

Aber das gehört hier nicht hin, vielen Dank erstmal.
Es ist nicht falsch das mal zu sagen.
Immerhin wurde ich damals auch quasi erstmal mit allem erschlagen. :D

Die Grundlagen musst Dir aber selber erarbeiten.
Wenn Du die Beherrschst, geht's schnell vorran. :)
Zu dem Thema gibts hier im .NET Forum schon ne menge Threads.
Such mal nach meinem Benutzernamen und Nach "Grundlagen."
Hab schon einiges darüber verfasst.
Das kannst auch mal mit dem Namen "Norbert Eder" probieren. ;)
 
Ich glaube, er wollte nur ein einfaches Array erstellen und keine Verweise auf andere Objekte speichern. Zumindest versteh ich die Anfrage so, wenn ich mir die Stelle "... Ich habe die Variable test, und möchte ihr 10 verschiedene Werte zuordnen ..." durchlese. Und auch sein Codebeispiel schaut mir eher danach aus.

Also ein einfaches Array kann man folgendermaßen erstellen:

Code:
int[] store = new int[50];
string[] names = new string[50];

oder auch:
int[] store = {0, 1, 2, 3, 10, 12};

Bitte nicht schlagen, falls du doch was anderes wissen wolltest.

So long,
Chrisu
 
Zuletzt bearbeitet:
Wenn er wüsste, welcher DatenTyp sich in dem Array befindet,
hätte er doch nicht so eine Frage gestellt. ;)
Und das zu den Sammlungen war nur eine Ergänzung zu niggos Tipp
und sicherlich auch erwähnenswert. :)
Oder bin ich etwa am Thema vorbei?
 
Ich fürchte, durch meine unglückliche Ausdrucksweise habe ich wieder mal alles komplizierter gemacht als nötig.
Denn das, was Chrisu geschrieben hat, ist genau das, was ich gesucht habe.
Zugegeben, wenn ich mir jetzt meinen Text - und in Kombination dazu Eure Antworten - durchlese, erkenne ich das Missverständnis.
Trotzdem werde ich mir Eure Grundlagentutorials anschauen, denn ich merke bei nahezu jeder Zeile, daß es an den Kleinigkeiten schon mangelt.

Andererseits merke ich auch mit jeder Zeile, daß sich der Nebel weiter lichtet.:)
Merci!
 
cosmochaosmaker hat gesagt.:
Wenn er wüsste, welcher DatenTyp sich in dem Array befindet,
hätte er doch nicht so eine Frage gestellt. ;)
Und das zu den Sammlungen war nur eine Ergänzung zu niggos Tipp
und sicherlich auch erwähnenswert. :)
Oder bin ich etwa am Thema vorbei?
Das geht aber auch freundlicher ;-)
 

Neue Beiträge

Zurück