2017-07-13 7 views
-4

Ich versuche 2 Strings zu vergleichen, die sich über mehrere Zeilen erstrecken.C# zwei Strings vergleichen, die sich über mehrere Zeilen erstrecken

Beispiel:

string myStr1= "Microsoft’s approach to IoT <br> 
Pham Tien Dung – Developer Evangelist Microsoft Vietnam" 

string myStr2 = "Microsoft’s approach to IoT <br> 
Pham Tien Dung – Developer Evangelist Microsoft Vietnam" 

Ansätze:

  1. mit Verbatim-String Versuchte wie folgt.

    string myStr3 = @myStr1 
    string myStr4 = @myStr2 
    

und ging mit String-Vergleich und einen Fehler empfangen werden.

2.Tried mit regulärem Ausdruck (Leerzeichen entfernt, neue Zeile). Immer noch einen Fehler erhalten.

Bitte helfen Sie mir, dieses Problem zu lösen.

+8

Was ist der Fehler? Wie machst du den Vergleich? Code anzeigen – musefan

+0

Dieser C# -Code ist ungültig. Zeigen Sie uns, wie Ihre Zeichenfolge initialisiert wird und wie sie tatsächlich aussieht. –

+0

Sie können Zeichenfolge mit Newline vergleichen. Sie müssen sie nicht entfernen. –

Antwort

1

Dies sollte funktionieren, Hinweis, wo @ befindet:

string myStr1= @"Microsoft’s approach to IoT <br> 
Pham Tien Dung – Developer Evangelist Microsoft Vietnam"; 

string myStr2 = @"Microsoft’s approach to IoT <br> 
Pham Tien Dung – Developer Evangelist Microsoft Vietnam"; 

bool areStringsSame = myStr1 == myStr2; 
//or, like this: 
bool stringsSame = myStr1.Equals(myStr2); 
+1

oder die dritte Option 'bool stringsSame = string.Equals (myStr1, myStr2);' – MKasprzyk

+0

@Nino machen, naja, myStr1, myStr2 werden von externer Quelle gelesen. Also, ich habe es gerade mit dem oben erwähnten Code-Snippet versucht. Bitte sehen Sie es sich an. – Dhanaprabhu

+0

@Danaprabhu liest du die Strings aus Dateien? – ElectricRouge

0

Sie Equal Methode anwenden sollten, und Ihr Code könnte wie folgt aussehen:

string myStr1= @"Microsoft’s approach to IoT <br> 
Pham Tien Dung – Developer Evangelist Microsoft Vietnam" 

string myStr2 = @"Microsoft’s approach to IoT <br> 
Pham Tien Dung – Developer Evangelist Microsoft Vietnam" 

if (myStr1.Equals(myStr2)) // Yes 

Wenn Sie sich fragen, warum ich PUT @ vor einem String => Erklärung ist unten!

Es markiert die Zeichenfolge als ein wortwörtliches String-Literal - alles in der Zeichenfolge, die normalerweise als Escape-Sequenz interpretiert werden würde, wird ignoriert.

So zum Beispiel "C:\\Users\\John" is the same as @"C:\Users\John"

Verwandte Themen