Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
For Schleife mit "Stringaufzählung"
Nedel
myCSharp.de - Member



Dabei seit:
Beiträge: 2

Themenstarter:

For Schleife mit "Stringaufzählung"

beantworten | zitieren | melden

Hey Leute,

hab eine kleine Frage zu for-schleifen. Beschäfte mich erst seit kurzem mit Programmierung.

Wie kann ich


for (int i = 0; i<5;i++)
{
    int bar"i" = ...;
}
realisieren. Also dass es immer bar1, bar2, bar3... aufzählt.
Oder gehtt das gar nicht, weil bar vom typ int ist ?

Wäre dankbar für eure Hilfe!
private Nachricht | Beiträge des Benutzers
Peter Bucher
myCSharp.de - Experte

Avatar #jVxXe7MDBPAimxdX3em3.jpg


Dabei seit:
Beiträge: 5.940
Herkunft: Zentralschweiz

beantworten | zitieren | melden

Hallo Nedel und willkommen in der Community

Deine Frage verstehe ich leider überhaupt nicht.


Gruss Peter
--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

- https://peterbucher.ch/ - Meine persönliche Seite
- https://fpvspots.net/ - Spots für FPV Dronenflüge
private Nachricht | Beiträge des Benutzers
Melone
myCSharp.de - Member



Dabei seit:
Beiträge: 190

beantworten | zitieren | melden

Hi,
das geht so nicht du willst den Variablen namen zusammen bauen, wenn ich das richtig sehe.

Du müsstest ein array dafür anlegen also


//string[] bar = new string[anzahl]
//EDIT: ups int nicht string

int[] bar = new int[anzahl]

//dann kannst du über

for (int i = 0; i<5;i++)
{
int bar[i] = ...;
}

//darauf zugreifen.


Vielleicht solltest du sowas aber im nachlesen.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Melone am .
private Nachricht | Beiträge des Benutzers
Nedel
myCSharp.de - Member



Dabei seit:
Beiträge: 2

Themenstarter:

beantworten | zitieren | melden

hier ein Ausschnitt aus meinem Programm:


//Bar1 bestimmen
            Rectangle bar1 = new Rectangle(rectFace.Left + rectFace.Width / 10, rectFace.Bottom - rectFace.Height / 4 + (int)GammaContent1 / scale_y ,
                rectFace.Width / 10, rectFace.Height / 40);

            //Bar2 bestimmen
            Rectangle bar2 = new Rectangle(bar1.Right + bar1.Right / 7, rectFace.Bottom - rectFace.Height / 4 + (int)GammaContent2 / scale_y,
                rectFace.Width / 10, rectFace.Height / 40);

            //Bar3 bestimmen
            Rectangle bar3 = new Rectangle(bar2.Right + bar1.Right / 7, rectFace.Bottom - rectFace.Height / 4 + (int)GammaContent3 / scale_y,
                rectFace.Width / 10, rectFace.Height / 40);
Ich erstelle hier Balkendiagramme. Nun würde ich das ganze leiber in einer Schleife schreiben, da ich insgesamt 5 bars habe.
GammaContent.. ist vom Typ Float.

Wie kann ich bar.. und GammaContent.. in der for schleife aufzählen lassen, oder geht das gar nicht?
private Nachricht | Beiträge des Benutzers
davidG
myCSharp.de - Member



Dabei seit:
Beiträge: 67

beantworten | zitieren | melden

Was genau willst du mit dieser Schleife bewirken?

Mir ist nicht bekannt, dass man den Namen einer Variable auf deiner Weise deklarien kann (wenns doch geht dann bescheit geben).

Mir ist auch der Sinn nicht so ganz klar. Zum einen ist die Variable, die du versuchst in der Schleife zu erstellen nur in der Schleife gültig. Das heißt, sobald die Schleife ein weiters mal durchlaufen wird, würde es "bar0", wenn es möglich wäre, nicht mehr geben.

Wenn du dir fünf Werte generien lassen willst, dann verwende doch zur temporären Speicherung eine Collection. Zum Bsp:

List<int> myList =new List<int>();
myList.Add(int-wert)
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von davidG am .
„Ich erfand den Begriff «objekt-orientiert», und ich kann sagen, dass ich dabei nicht C++ im Sinn hatte.“ Alan Kay
private Nachricht | Beiträge des Benutzers
juetho
myCSharp.de - Member



Dabei seit:
Beiträge: 3.331
Herkunft: Berlin

beantworten | zitieren | melden

Der letzte Beitrag von davidG führt doch in die richtige Richtung: Nedel will Elemente vom Typ Rectangle zusammenfassen. Dann ist folgendes Verfahren vernünftig:

List<Rectangle> myList = new List<Rectangle>(5);
for(int x1 = 0; x1 < 5; x1++) {
  myList.Add(new Rectangle(...));
}
Die Parameter musst Du sinnvoll mit x1 verknüpfen. Der erste Parameter kann mit Sicherheit ersetzt werden durch etwas wie (x1*a+b)/7.

Viel Erfolg! Jürgen
private Nachricht | Beiträge des Benutzers
langalaxy
myCSharp.de - Member

Avatar #avatar-1914.gif


Dabei seit:
Beiträge: 664

beantworten | zitieren | melden

Siehe auch [FAQ] Variablennamen zur Laufzeit zusammensetzen
private Nachricht | Beiträge des Benutzers