tutorials.de Buch-Aktion 02/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
931
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von NSR
    NSR NSR ist offline Mitglied Silber
    Registriert seit
    Nov 2008
    Beiträge
    94
    Sers Comunity,

    Also es geht darum, dass ich einen Weg suche mit einem Vergleichsoperator auf mehrere Variablen abzufragen.

    Kleines Beispiel:
    Code :
    1
    2
    3
    4
    
    string a,b,c;
    if(TextBox.Text == a | b | c)
    {
    }

    So dass er den Text in der TextBox auf a, b und c vergleicht.

    ps. Ich weiß natürlich, dass man das auch mit nem switch oder wie man des halt sonst macht mit:
    Code :
    1
    2
    3
    4
    
    string a,b,c;
    if(TextBox.Text == a | TextBox.Text == b | TextBox.Text == c)
    {
    }
    .

    Mir geht es aber besonders darum eine verkürzte Schreibweise zu haben.

    Danke schon mal im Vorraus.
    Nico
     

  2. #2
    Drache2 Drache2 ist offline Mitglied Gold
    Registriert seit
    Mar 2007
    Beiträge
    106
    Eigentlich relativ simpel.

    Man erstelle sich einfach eine vergleichen Methode mithilfe von params.

    Hier mal ein voll funktionsfähiges Consolenbeispielprogramm mit Kommentierung (Just eben geschrieben)

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
     
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Teststrings
                string s1 = "a", s2 = "a", s3 = "a", s4 = "a", s5 = "b"; 
     
                //Wird True schreiben, da alle 3 strings (s2 bis s4) mit s1 übereinstimmen
                Console.WriteLine(vergleiche(s1, s2, s3, s4));
                //Wird False zurückgeben, da der letzte 4. string s5 nicht mit s1 übereinstimmt.
                Console.WriteLine(vergleiche(s1, s2, s3, s4, s5));
     
                //Auf Tastendruck warten
                Console.ReadKey(true);
     
            }
     
            /// <summary>
            /// Vergleicht den ersten string mit den restlichen strings und gibt true zurück, falls alle mit dem Hauptstring übereinstimmen.
            /// </summary>
            /// <param name="Hauptstring">Der Hauptstring</param>
            /// <param name="Vergleichsstrings">Strings die mit dem Hauptstring verglichen werden sollen.</param>
            /// <returns>Ergebnis</returns>
            static bool vergleiche(string Hauptstring, params string[] Vergleichsstrings)
            {
                //Gehe alle übergeben Parameter durch und vergleiche mit Hauptstring
                //Wenn einer nicht mit dem Hauptstring übereinstimmt kann bewusst false zurückgegeben werden.
                foreach (string s in Vergleichsstrings)
                {
                    if (s != Hauptstring)
                        return false;
                }
     
                return true;
            }
        }
    }

    Der Methode vergleiche übergibst du einfach einen Hauptstring (in deinem Falle die TextBox.Text Eigenschaft) und die restlichen strings mit der der TextBox.Text-String verglichen werden soll.

    Hoffe es ist dir so recht.
    Die Methode lässt sich denke ich einfach verstehen und auhc simpel in einen Ifsatz ein bauen.

    Code :
    1
    2
    3
    4
    
    string a,b,c;
    if(vergleiche(TextBox.Text,a,b,c))
    {
    }

    //EDIT

    Alternativ kannst du auch eine Extension verwenden.

    Das sehe dann so aus:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
     
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                //Teststrings
                string s1 = "a", s2 = "a", s3 = "a", s4 = "a", s5 = "b"; 
     
                //Wird True schreiben, da alle 3 strings (s2 bis s4) mit s1 übereinstimmen
                Console.WriteLine(s1.vergleiche(s2, s3, s4));
                //Wird False zurückgeben, da der letzte 4. string s5 nicht mit s1 übereinstimmt.
                Console.WriteLine(s1.vergleiche(s2, s3, s4, s5));
     
                Console.WriteLine();
     
               
     
                //Auf Tastendruck warten
                Console.ReadKey(true);
     
            }
     
        static class Extension
        {
            public static bool vergleiche(this string instans, params string[] Vergleichswerte)
            {
                //Gehe alle übergeben Parameter durch und vergleiche mit Hauptstring
                //Wenn einer nicht mit dem Hauptstring übereinstimmt kann bewusst false zurückgegeben werden.
                foreach (string s in Vergleichswerte)
                {
                    if (s != instans)
                        return false;
                }
     
                return true;
            }
        }
     
    }

    in deinem Beispiel:
    Code :
    1
    2
    3
    4
    
    string a,b,c;
    if(TextBox.Text.vergleiche(a,b,c))
    {
    }

    Fertig. Kurze Schreibweise

    Gruß Drache2.
    Geändert von Drache2 (23.08.10 um 20:13 Uhr) Grund: Um Extensionmöglichkeit erweitert
     
    ;::::;

Ähnliche Themen

  1. Mehrere Abfragen in einem Bericht? MS Access 2003
    Von fonds im Forum Office-Anwendungen
    Antworten: 4
    Letzter Beitrag: 05.09.08, 10:17
  2. mehrere mySQL-Abfragen in einem String
    Von Dac-XP im Forum PHP
    Antworten: 4
    Letzter Beitrag: 05.11.07, 18:53
  3. Mehrere Count-Abfragen mit einem Query
    Von casa74 im Forum Relationale Datenbanksysteme
    Antworten: 9
    Letzter Beitrag: 05.03.07, 08:22
  4. Antworten: 1
    Letzter Beitrag: 18.12.04, 19:23
  5. Mehrere Abfragen zu einem Array?
    Von dennis2412 im Forum PHP
    Antworten: 8
    Letzter Beitrag: 22.11.03, 09:31