6 Stimmen

C# Mehrere String-Vergleiche mit gleichem Wert

Schauen Sie sich bitte den folgenden Fall an, der sicherlich interessant sein wird.

Wenn ich mehreren Objekten denselben Wert zuweisen möchte, verwende ich etwas wie dieses

string1 = string2 = string3 = string 4 = "some string";

Nun, was ich tun möchte, ist, ich möchte String1, String2, String3 und String4 mit "someotherstring" vergleichen... Fragen gibt es eine Möglichkeit, dies zu tun, ohne individuelle Vergleich zu schreiben. d.h.

string1 == "someotherstring" || string2 == "someotherstring" || string3 == "someotherstring" || string4 == "someotherstring"

Ich hoffe, ich konnte die Frage erklären bitte helfen Sie mir in dieser Sache.

Grüß Gott, Paresh Rathod

15voto

Romain Verdier Punkte 12565

In C# 3.0 können Sie eine sehr triviale Erweiterungsmethode schreiben:

public static class StringExtensions
{
    public static bool In(this string @this, params string[] strings)
    {
        return strings.Contains(@this); 
    }
}

Dann verwenden Sie es so:

if ("some string".In(string1, string2, string3, string4))
{
    // Do something
}

8voto

Adriaan Stander Punkte 155899

In Ihrem Fall können Sie Folgendes versuchen

if (new string[] { string1, string2, string3, string4 }.Contains("someotherstring"))
{
}

5voto

Jay Bazuzi Punkte 43111

Ich finde LINQ sehr aussagekräftig und würde in Betracht ziehen, es für dieses Problem zu verwenden:

new[] { string1, string2, string3, string4 }.Any(s => s == "some string")

3voto

James Keesey Punkte 1218

Nein, das gibt es in C# nicht, aber man könnte es so schreiben:

 (string1 == string2 && string2 == string3 && 
  string3 == string4 && string4 == "someotherstring")

1voto

Benoît Punkte 16390

Sie können eine Funktion erstellen, die das Lesen des Codes vereinfacht:

compareToFirst( "someotherthing", string1, string2, string3, string4);

Wenn Sie diese Liste von Zeichenketten mit aufeinanderfolgenden "anderen Zeichenketten" vergleichen wollen, sollten Sie ein Listenobjekt "myStringList" erstellen, dem Sie string1/2/3/4 hinzufügen und dann eine Funktion definieren, mit der Sie schreiben können

compare( "someotherthing", myStringList );

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X