Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Prism ContainsKey in SortedList (https://www.delphipraxis.net/95936-containskey-sortedlist.html)

Raffigator 16. Jul 2007 13:42


ContainsKey in SortedList
 
Hallo,

folgendes Problem:

Ich habe eine SortedList, in der ich einige Key-Value-Beziehungen gepeicherthabe. Das funktioniert soweit auch alles bestens! Es ist richtig sortiert.
Sobald ich nun aber eine Prüfung mache, ob ein bestimmter Key in der Liste vorhanden ist, wird eine Ausnahme ausgelöst: "Der angegebene IComparer hat eine Ausnahme ausgelöst"

Mache ich da irgendwas grundlegendes falsch?

angos 16. Jul 2007 13:55

Re: ContainsKey in SortedList
 
Hi,

hast du mal ein stück source, damit der fehler leichter eingrenzbar ist?

MaestroAlbi 16. Jul 2007 13:56

Re: ContainsKey in SortedList
 
Hi,

wie machst du die Überprüfung?

Raffigator 16. Jul 2007 14:02

Re: ContainsKey in SortedList
 
Also ich habe das ganze in einer Klasse und im Konstruktor passiert folgendes:

Delphi-Quellcode:
//Der Konstruktor
...
  SpaltenNamen := SortedList.Create;

  SpaltenNamen.Add(TObject(1),'NAME');
  SpaltenNamen.Add(TObject(2),'VORNAME');
...
Ich habe im Hauptprogramm ein Objekt dieser Klasse erzeugt und rufe dann z.B. MyObject.isIn(TObject(1)) auf.
Die isIn-Methode delegiert das ganze einfach weiter:

Delphi-Quellcode:

function PStammA_Fields.isIn(o : TObject) : boolean;
begin
  Result := SpaltenNamen.ContainsKey(o);
end;
Ich schätze, dass ich mit dem TObject irgendwie murks mache, steh aber gerade auf dem Schlauch...

alzaimar 16. Jul 2007 14:06

Re: ContainsKey in SortedList
 
Also ich habe das mit einer 'System.Collections.Hashtable' gemacht. Der Schlüssel (AnyObject.ToString) und Wert sind Strings. Damit klappt es ohne Probleme. Zum Suchen würde ich auch eher eine Hashtabelle verwenden, die ist schneller als eine sortierte Liste.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz