Entwickler-Ecke
Basistechnologien - Wert von einem Ulong Array mit Contain abfragen
bfmeb - Di 18.08.09 10:31
Titel: Wert von einem Ulong Array mit Contain abfragen
Hallo,
ich hab hier ein ganz simples Array aus Werten mit dem Datentyp Ulong.
C#-Quelltext
1:
| ulong[] ignoreIds = new ulong[] { "3000101", "3000301", "3000302", "1001", "1010", "1010010", "1010030" }; |
Nun würde ich gern false zurückgeben wenn ein Parameter meiner Methode denselben Wer hat wie ein Wert aus meinem Array.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7:
| private bool CheckIgnoreIds(ulong id) { ulong[] ignoreIds = new ulong[] { "3000101", "3000301", "3000302", "1001", "1010", "1010010", "1010030" }; if (ignoreIds.ToString().Contains(id)) return false; return true; } |
Der Code ist so nicht korrekt, ich weiß blo nicht so recht ob ich vorher in String konvertieren muss, dann Contain() anwende...(jedoch wird true zurückgegeben wenn dann ein Zeichen der Zeichenfolge übereinstimmt)
Ich will zwingend die Contains()-Methode nutzen...brauch ich da dann eine ArrayList?
Sorry für die Anfängerfrage, aber komme grad nicht so recht weiter...
danke vielmals
bfmeb - Di 18.08.09 14:00
Ich habe das jetzt mit einer ArrayList gemacht...
Wieso funktioniert dieser Code nicht? Ich steig einfach nicht dahinter, was mache ich falsch. Auch wenn die variable id genau den Wert annimmt wie er im Array eingetragen ist wird trotzdem true zurückgegeben.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| private bool CheckIgnoreIds(ulong id) { ArrayList ignoreIds = new ArrayList(); ignoreIds.Add(3000101); ignoreIds.Add(3000101); ignoreIds.Add(3000302); ignoreIds.Add(1001); ignoreIds.Add(1010); ignoreIds.Add(1010010); ignoreIds.Add(1010030); if (ignoreIds.Contains(id)) return false; return true; } |
Kann mir jemnand helfen?
Flitzs - Di 18.08.09 14:42
Hallo,
wenn du dir mal ansiehst welchen Typ die Elemente in der ArrayList haben, wirst du feststellen, dass diese als Int32 in der Liste sind.
Daher wäre dein Code so korrekt:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| private bool CheckIgnoreIds(ulong id) { ArrayList ignoreIds = new ArrayList(); ignoreIds.Add(3000101); ignoreIds.Add(3000302); ignoreIds.Add(1001); ignoreIds.Add(1010010); ignoreIds.Add(1010030); if (ignoreIds.Contains((Int32)id)) return false; return true; } |
Man könnte auch gleich den Typ des Paramters ändern.
Allerdings solltest du lieber List<T> anstatt der ArrayList nehmen und die doppelten Elemente entfernen:
C#-Quelltext
1: 2: 3: 4: 5:
| private bool CheckIgnoreIds(ulong id) { List<ulong> ignoreIds = new List<ulong>() { 3000101, 3000302, 1001, 1010010, 1010030 }; return !ignoreIds.Contains(id); } |
mfg Flitzs
bfmeb - Di 18.08.09 14:53
AAAhhhh stimmt..
Och manno wieso bin ich da niciht selber drauf gekommen, sowas dämliches.
Danke VIELMALS für die schnelle Hilfe :)
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!