Laden...

Vergleich auf mehere Werte?

Erstellt von Froggie vor 15 Jahren Letzter Beitrag vor 15 Jahren 889 Views
F
Froggie Themenstarter:in
323 Beiträge seit 2007
vor 15 Jahren
Vergleich auf mehere Werte?

Hallo, ich möchte einen Wert mit 3 weiteren Werten vergleichen. Zur Zeit sieht das so bei mir aus:


if (Array[i] == Wert1 || Array[i] == Wert2 || Array[i] == Wert3)

Geht das ganze nicht einfacher, weil zur Zeit muss er ja jedesmal das nullte Element aus dem Array holen. Ich dachte es gibt vielleicht so etwas in der Art:


if (Array[i] == Wert1 || Wert2 || Wert3)

Aber das geht nicht. 🙁

Gelöschter Account
vor 15 Jahren

nein, es geht leider nciht anders, es sei den nes handelt sich um flags.

2.082 Beiträge seit 2005
vor 15 Jahren

Hallo Froggie,

mach dir doch eine statische Klasse mit folgender methodes

        public static bool ValueEquals(object value, params object[] comparsion) {
            foreach(object compare in comparsion)
                if(value.Equals(compare))
                    return true;

            return false;
        }

Es ist toll jemand zu sein, der nichts von der persönlichen Meinung Anderer hält. - frisch-live.de

1.378 Beiträge seit 2006
vor 15 Jahren

Hallo Froggie,

mach dir doch eine statische Klasse mit folgender methodes
...

Um eine Variation erweitert und mit LINQ Ausdrücken:


        public static bool ValueEquals(object value, params object[] comparsion) {
            return comparsion.All(o=> value.Equals(o));
        }
        public static bool ValueEqualsAny(object value, params object[] comparsion) {
            return comparsion.Any(o=> value.Equals(o));
        }

Lg XXX

2.082 Beiträge seit 2005
vor 15 Jahren

Das hab ich dann davon dass wir hier in der Firma noch kein Linq einsetzen 😛

Es ist toll jemand zu sein, der nichts von der persönlichen Meinung Anderer hält. - frisch-live.de

B
114 Beiträge seit 2007
vor 15 Jahren
  
C#-Code:   
        public static bool ValueEquals(object value, params object[] comparsion) {  
            return comparsion.All(o=> value.Equals(o));  
        }  
        public static bool ValueEqualsAny(object value, params object[] comparsion) {  
            return comparsion.Any(o=> value.Equals(o));  
        }    
  

Ich hatte mal ein ähnliches Problem und hab es wie Extension 2, nur mit Contains(value) statt dem Weg über Any gelöst.
Für die 1. Extension fehlt mir allerdings noch ein parktisches Beispiel. Ich denke mit dem Standard-Vergleich macht das so keinen Sinn.