2016-04-24 3 views
1

Ich versuche, einen String-Knoten in eine verknüpfte Liste einzufügen und zu sortieren. Das Problem, das ich habe, ist mit der Linie while((curr != null) && (str > curr.Data)). Ich erhalte den Fehler "Der Operator < kann nicht auf Operanden vom Typ 'string' und 'string' angewendet werden." Ich verstehe diesen Fehler nicht, da die Funktion mit == funktioniert und auch in dem Fall, dass es sich um Ints und nicht um Strings handelt. Ich habe versucht, str.CompareTo(currData) zu verwenden, aber das erzeugt einen ähnlichen Fehler. Wenn mir jemand erklären könnte warum dieser Fehler erzeugt und möglicherweise was ich tun kann, um es zu umgehen, wäre das großartig.String in eine verknüpfte Liste einfügen und sortieren

private Node head = null; // initially nothing in the list 
    private int count = 0; 

    public void InsertSorted(string str) 
    { 
     Node newNode = new Node(str); 
     Node previous = null; 
     Node curr = head; 

     while((curr != null) && (str > curr.Data)) 
     { 
      previous = curr; 
      curr = curr.Next; 
     } 
     if(previous == null) 
     { 
      newNode.Next = curr; 
      head = newNode; 
     } 
     else 
     { 
      newNode.Next = curr; 
      previous.Next = newNode; 
     } 

    } 

Antwort

1

Versuchen

while((curr != null) && (string.Compare(str, curr.Data) > 0)) 

Der > Operator für Streicher in C# nicht gültig ist.

+0

Ah, ich wusste nicht, dass das der Fall war. Ich danke dir sehr; Das hat meinen Fehler gelöst. – crin

+0

Ich muss nicht oft String-Vergleiche machen. Ich hätte es vermutlich zuerst versucht. –