Or Operator für Textvergleich

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von ~blaze~.

    Or Operator für Textvergleich

    Hallo,

    Ich stosse beim Programmieren gerade auf ein Problem.

    Quellcode

    1. If Performance.Contains("D" Or "E" Or "F" Or "N") Then


    Ich habe eine String-Variable, die die Performance angibt. Diese beinhaltet 2 Buchsthaben. Nun muss ich vergleichen, ob einer dieser Buchstaben D, E, F oder N in der Performance vorkommt. Mit dem Or-Operator geht das jedoch nicht, da ich logischerweise eine Fehlermeldung bekomme:

    Ein Ausnahmefehler des Typs "System.InvalidCastException" ist in Microsoft.VisualBasic.dll aufgetreten.

    Zusätzliche Informationen: Ungültige Konvertierung von der Zeichenfolge D in Typ Long.


    Jetzt zu meiner Frage: Gibt es einen Or-Operator Ersatz für Text, oder muss ich diese If-Abfrage jetzt für jeden einzelnen Buchstaben schreiben? ?(

    Schon im Voraus vielen Dank für eine Antwort :)
    Ja, einzeln oder mit LINQ und einem Array:

    C#-Quellcode

    1. string[] letters = new[] {"D", "E", "F", "N"};
    2. if (letters.Any(l => Performance.Contains(l))
    3. {
    4. // Do it
    5. }


    Einfach durch einen Konverter jagen, weiß nicht, wie das in VB.NET wäre.
    Und verwende übrigens besser OrElse.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    mist ThuCommix war schneller.

    Die große Frage ist aber VB6 oder .net? Vom Code würde ich sagen .net da VB6 ja InStr verwenden würde
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    Hab's mal noch in VB.NET konvertiert:

    VB.NET-Quellcode

    1. Dim letters As String() = New String() {"D", "E", "F", "N"}
    2. If letters.Any(Function(l) Performance.Contains(l)) Then
    3. ' Ist drin
    4. End If


    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:

    vb123 schrieb:

    Jetzt zu meiner Frage: Gibt es einen Or-Operator Ersatz für Text, oder muss ich diese If-Abfrage jetzt für jeden einzelnen Buchstaben schreiben?
    Oh - das geht wesentlich eleganter!

    Nur verrate ich dir das noch nicht, denn du müsstest, ehe du noch irgendetwas anderes weiter programmierst, deine VisualStudio-Einstellungen korrigieren: Visual Studio - Empfohlene Einstellungen

    (ich weiß, das ist gemein, aber wenn du dir die Mühe machst, zeigst du damit, dass du überhaupt programmieren lernen willst, und anders ists eh nicht der Mühe wert, was zu erklären)