2009-04-03 8 views
2

Ich habe ein etwas merkwürdiges Problem, das ich denke, ist wahrscheinlich aufgrund einer Tat der Torheit meinerseits, aber für das Leben von mir kann ich (und andere Mitglieder meines Teams) Ich sehe es nicht.list.sort funktioniert nicht in vb.net

Ich habe ein Objekt, das eine allgemeine Liste Eigenschaft enthält, die ich sortieren möchte. Ich habe eine Klasse geschrieben comparer dies für mich zu tun und ich rufe es auf folgende Weise:

baseObject.ListOfThings.Sort(new ThingComparer()) 

ich in meiner Vergleichsfunktion gedebuggt haben, und es ist, die richtigen Werte zurück.

Nach dem Sortieraufruf bleibt die Liste jedoch unverändert. Habe ich etwas Offensichtliches verpasst oder muss ich noch etwas anderes tun?

Vielen Dank

EDIT: Ja, ich sei ein Narr, und die Eigenschaft eine Liste der Rückkehr wurde es von Grund auf neu erstellt jedes Mal auf sie zugegriffen wurde. Vielen Dank für Ihre Hilfe an alle, und ich werde versuchen, Dinge besser zu überprüfen, bevor Sie in Zukunft um Hilfe bitten

+0

kochen Sie es auf einige Beispiel-Code, und posten Sie es hier (ich würde erstaunt sein, dass wenn Sie den Beispielcode nicht finden und behebe dein Problem –

Antwort

1

Erstellt Ihr Basisobjekt die Liste bei jedem Zugriff neu? Jedes Mal, wenn jemand mich gebeten hat, bei diesem Problem zu helfen, hat sich das Problem herausgestellt. Vielleicht wird die Eigenschaft einer Datenbank aufrufen, den Aufbau der Liste, wenn seine zugegriffen, etc ...

0

Sieht für mich vollkommen in Ordnung. Gibt die ListOfThings-Eigenschaft möglicherweise eine Kopie der zugrunde liegenden Liste zurück?

Dann würden Sie eine Kopie der Liste sortieren, die dann verloren ist, und Sie erhalten eine neue Kopie der Liste in der ursprünglichen Reihenfolge beim nächsten Aufruf von ListOfThings.

0

Ich weiß nicht, den Rest des Codes, aber was so etwas wie dies zu versuchen:

baseObject.ListOfThings.Sort(AddressOf ThingComparer) 

(Angenommen, Sie haben Shared Function zum Anrufen)

0

Um zu verstehen, was hier vor sich geht, brauchen wir einen weiteren Kontext, wie ListOfThings implementiert ist. Insbesondere müssen wir wissen

  • Ist es eine Eigenschaft. Wenn ja zeigen Sie uns bitte die Get-Methode
  • Was die Art der ListOfThings ist

Es scheint eine Eigenschaft zu sein, und es gibt numereous Möglichkeiten, dies in einer solchen Art und Weise umgesetzt werden könnten, die dieses Verhalten verursachen würde. Zum Beispiel würde die folgende Definition genau das Verhalten verursachen, das Sie sehen:

Verwandte Themen