Hallo,
irgendwo biege ich falsch ab...
Delphi-Quellcode:
type
TStatisticsKey = record
ProductID : Integer;
ConsumptionPlace : TConsumptionPlace;
end;
function TStatisticsProductDict.IncSubID(ProductID : Integer;
ConsumptionPlace : TConsumptionPlace): Integer;
var
Key : TStatisticsKey;
Pair : TPair<TStatisticsKey, Integer>;
begin
Key.ProductID := ProductID;
Key.ConsumptionPlace := ConsumptionPlace;
if FItems.ContainsKey(Key) then
begin
Pair := FItems.ExtractPair(Key);
Result := Pair.Value + 1;
FItems.Add(Key, Result);
end
else
begin
FItems.Add(Key, 0);
Result := 0;
end;
end;
FItems ist ein TDictionary<TStatisticsKey, Integer>
Das Problem ist jetzt, dass beim ersten Aufruf zwar ein Eintrag zu FItems hinzugefügt wird,
beim nächsten Aufruf mit genau der selben ProductID und Consumption Place findet ContainsKey
diesen nicht und fügt daher einen weiteren Eintrag mit dem Schlüssel hinzu.
Was mache ich falsch?