Die einfachste Möglichkeit, um zu überprüfen, ob eine Variable einem Wert aus einer Liste in C# entspricht
Wenn Sie mit C# arbeiten, ist es häufig erforderlich, zu überprüfen, ob eine Variable einem von mehreren Werten entspricht. Die Frage lautet: “Was ist der prägnanteste Weg, dies zu erreichen?” Insbesondere möchten Sie vermeiden, die zu überprüfende Variable mehrfach zu wiederholen und sich gleichzeitig von umfangreichen Syntaximplementierungen wie Arrays oder Listen fernzuhalten, wenn dies nicht erforderlich ist.
In diesem Blog-Beitrag werden wir verschiedene Lösungen erkunden, um effizient zu bestimmen, ob eine Variable gleich einem der Werte in einer Menge mithilfe von boolescher Logik ist.
Der gängige Ansatz
Oft greifen Entwickler auf den logischen ODER-Operator (||
) zurück, um einen direkten Vergleich wie diesen durchzuführen:
int basisFall = 5;
bool testErgebnis = basisFall == 3 || basisFall == 7 || basisFall == 12 || basisFall == 5;
Obwohl diese Lösung funktioniert, erfordert sie wiederholte Codezeilen für jeden Wert, den Sie überprüfen möchten. Wie Sie sehen können, kann der Code bei einer langen Liste von Werten schnell unhandlich und fehleranfällig werden.
Überdenken Sie Ihren Ansatz
Eine Frage, die aufkam, war, ob es eine Möglichkeit gibt, diese Logik prägnanter zu kapseln, ohne lange Ausdrücke oder .NET 3.5-Funktionen zu verwenden. Besonders wichtig ist, dass Sie Konstrukte vermeiden möchten, die Arrays erfordern. Lassen Sie uns einen kompakteren Ansatz untersuchen.
Verwendung von Contains
Wenn Sie weiterhin an einer effizienteren Möglichkeit interessiert sind, gegen mehrere Werte zu prüfen, ist eine der besten Methoden die Nutzung der Contains
-Methode, auch wenn es dies erfordert, ein Array oder eine Liste zu verwenden. So könnten Sie es schreiben:
bool testErgebnis = new int[] { 3, 7, 12, 5 }.Contains(basisFall);
Warum Contains
verwenden?
Diese Methode vereinfacht Ihren Code in mehreren entscheidenden Weisen:
- Lesbarkeit: Sie verbessert die Klarheit des Codes. Jeder, der Ihren Code betrachtet, kann sofort erkennen, was Sie versuchen zu tun, ohne einen komplizierten ODER-Vorgang entschlüsseln zu müssen.
- Flexibilität: Sie können die Liste der Werte, gegen die Sie überprüfen, schnell ändern, ohne die Logikstruktur zu verändern.
- Skalierbarkeit: Fügen Sie Elemente in Ihrer Bedingung hinzu oder entfernen Sie sie, ohne sich um Codeaufblähung oder Wiederholung sorgen zu müssen.
Überlegungen für .NET 2.0-Benutzer
Angesichts der Einschränkungen bei der Verwendung des .NET 2.0-Frameworks sind einige Funktionen, die in späteren Versionen verfügbar sind, nicht zugänglich. Allerdings funktioniert die oben gezeigte Contains
-Implementierung gut in .NET 2.0. Folgendes bleibt eine einfache, aber effektive Lösung:
bool b = new int[] { 3, 7, 12, 5 }.Contains(5);
Fazit
Festzustellen, ob eine Variable einem Wert aus einer Menge entspricht, kann elegant mit der Contains
-Methode innerhalb eines Arrays verwaltet werden. Sie bietet eine saubere, kompakte Lösung, während die Lesbarkeit des Codes erhalten bleibt und das Risiko von Fehlern mit langen logischen Ausdrücken reduziert wird. Denken Sie daran, während Sie komplexere Logikszenarien in C# aufbauen, dass die Nutzung dieser Methoden sauberen, wartbaren Code unterstützen kann, der auch auf älteren Frameworks wie .NET 2.0 gut funktioniert.
Also, das nächste Mal, wenn Sie eine Variable mit einer Liste abgleichen müssen, denken Sie an diese Strategien für einen saubereren Code!