Entwickler-Ecke
C# - Die Sprache - Wertebereiche abfragen
Seppe - Mo 08.09.08 13:42
Titel: Wertebereiche abfragen
Hallo,
ich versuch gerade meine Delphi-Komponenten in c# umzusetzen und komme in einer Sache nicht weiter.
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| const Numeric_Codes = [('0')..('9'),('-')];
... if (charcode in Numeric_Codes) then .... |
Gibt es in c# ein ähnliches Konstrukt für solche IF-Abfragen ?
Moderiert von
Christian S.: Delphi-Tags hinzugefügt
Christian S. - Mo 08.09.08 13:54
Hallo!
Nein, sowas gibt's leider nicht. Da muss man dann schon Oxygene benutzen, das hat sowas :-)
Du kannst es aber (wahrscheinlich bei weitem nicht so performant) mit einem regulären Ausdruck lösen:
C#-Quelltext
1:
| if (Regex.Match(@"[0-9\-]", charcode)) |
Oder evtl. so:
C#-Quelltext
1:
| if((charcode >= '0' && charcode <= '9') || charcode == '-')) |
Grüße
Christian
//edit: Ich wusste doch, dass ich die Frage auch mal gestellt habe. Hier gibt's noch mehr Antworten:
http://www.c-sharp-forum.de/viewtopic.php?t=48638&start=0&postorder=asc
Skiller-1988 - Mo 08.09.08 14:01
Ich weis zwar nicht ob es dir weiterhilft aber ich habe das mal ganz einfach ausprobiert mit einer foreach-schleife.
Ich kann mir schon denken das hinsichtlich der Performance nicht die beste Lösung sein wird , aber es funktioniert soweit.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| char[] Numeric= new char[] {'0','1','2','3','4','5','6','7','8','9',}; bool res =false; string eingabe= Console.ReadLine(); foreach(char c in Numeric) { if (eingabe.Contains(c)) res = true; } Console.WriteLine(res.ToString()); |
Seppe - Mo 08.09.08 19:32
Danke für die Bemühungen.
Ich habs mit
if (fNumericChars.IndexOf(KeyChar) >= 0)
gelöst.
Noch ne Frage: In welchem Namespace sind die Virtual Keycodes definiert?
Kha - Mo 08.09.08 19:58
C#-Quelltext
1:
| enum System.Windows.Forms.Keys |
Macht aber normalerweise nur zusammen mit KeyUp/Down Sinn.
Außerdem solltest du der Übersichtlichkeit zuliebe einen neuen Thread (in der passenden Sparte) aufmachen, wenn du weitere Fragen hast, die nicht mehr zum Originalthema gehören.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!