Hallo,
ich habe hier ein Problem.
Ich muss prüfen ob der Integer i einer der Zahlen
7,12,16,18,19,37 und mehr ist.
Probiert habe ich es hiermit:
if (i == 7 | 12 | 16 ...)
{
...
}
hier kommt aber ein Kompilerfehler
Wie muss diese Prüfung aussehen??
MFG Max
Wenn es viele Zahlen sind, packst du sie am besten in eine Liste/ein
HashSet und prüfst mit Contains.
HashSet ist hierfür besser geeignet, gibt es allerdings erst ab 3.5
(oder 3.0?)
1
//.Net 3.5:
2
HashSet<int>nums=newHashSet<int>(){7,12,16};
3
4
//.Net 2.0:
5
//List<int> nums = new List<int>() { 7, 12, 16 };
6
if(nums.Contains(i)){
7
...
8
}
Dein Code sähe richtigermasen so aus, wird aber bei vielen Zahlen
schnell unübersichtlich:
Ja, die Möglichkeiten hatte ich schon.
Blos mein Problem ist, wenn einer dieser Zahlen i ist, soll nix gemacht
werden. Wenn alle dieser Zahlen nicht vorkommen, wird eine eine Kette
von Befehlen durchgeführt.
MFG Max
Zu deinem Fehler fällt mir zwar grad nichts ein, aber kannst du das
nicht einfach in einer while-Schleife machen? Ist zwar nicht besonders
effizient "nichts" zu tun, aber würde doch aufs gleiche raus kommen,
oder?
Ich würd das vielleicht so machen:
1
if((i==7)||(i==12)||(i==16)...)
2
{
3
;//nichts tun
4
}
5
6
else
7
{
8
;//etwas tun
9
}
oder
1
while((i==7)||(i==12)||(i==16)...)
2
{
3
;//nichts tun
4
}
edit
hast du oben beim if nicht nen semikolon zuviel?!