GARANTIR DESCONTO

Fórum valores duplicados em tdictionary delphi #617149

16/11/2021

0

bom dia pessoal,

algm ja trabalhou com valores duplicados em tdictionary?

por exemplo, posso adicionar a contaD 123 e tbm a contaC 123...

esta me retornando "duplicates not allowed"


abs;
Gxf

Gxf

Responder

Posts

16/11/2021

Emerson Nascimento

será que você não está mandando 'invertido'?
onde é a chave está mandando 123 e no valor mandando contaD e ContaC?
Responder

Gostei + 0

16/11/2021

Gxf

type TLancamentos = class
private
contaDebito: String;
contaCredito: String;
end;

{ Private declarations }
listaLancamentos2: TDictionary<String, TLancamentos>;

var
vI: Integer;
lancamento: TLancamentos;
begin
try
if not Assigned(listaLancamentos2) then
listaLancamentos2 := TDictionary<String, TLancamentos>.Create;

for vI := 0 to 5 do
begin
lancamento := TLancamentos.Create;

lancamento.contaDebito := '111';
lancamento.contaCredito := '555';

//if not listaLancamentos2.ContainsKey(lancamento.contaDebito) then
listaLancamentos2.Add(lancamento.contaDebito, lancamento);

//if not listaLancamentos2.ContainsKey(lancamento.contaCredito) then
listaLancamentos2.Add(lancamento.contaCredito, lancamento);
end;

for lancamento in listaLancamentos2.Values do
ShowMessage(lancamento.contaDebito + ' ' + '-' + lancamento.contaCredito);
finally
end;
end;
Responder

Gostei + 0

16/11/2021

Emerson Nascimento

type TLancamentos = class
	private
		contaDebito: String;
		contaCredito: String;
end;

{ Private declarations }
listaLancamentos2: TDictionary<String, TLancamentos>;

var
	vI: Integer;
	lancamento: TLancamentos;
begin
	try
		if not Assigned(listaLancamentos2) then
			listaLancamentos2 := TDictionary<String, TLancamentos>.Create;

		for vI := 0 to 5 do
		begin
			lancamento := TLancamentos.Create;

			lancamento.contaDebito := FormatFloat('000', vI+100);//'111'; //valor fixo: na segunda passagem pelo 'for' vai acusar duplicidade
			lancamento.contaCredito := FormatFloat('000', vI+500);//'555'; //valor fixo: na segunda passagem pelo 'for' vai acusar duplicidade

			//if not listaLancamentos2.ContainsKey(lancamento.contaDebito) then
			listaLancamentos2.Add(lancamento.contaDebito, lancamento);

			//if not listaLancamentos2.ContainsKey(lancamento.contaCredito) then
			listaLancamentos2.Add(lancamento.contaCredito, lancamento);
		end;

		for lancamento in listaLancamentos2.Values do
			ShowMessage(lancamento.contaDebito + ' ' + '-' + lancamento.contaCredito);
	finally
	end;
end;
Responder

Gostei + 0

17/11/2021

Gxf

é que no caso as contas vem de um grid, entao pode existir contas iguais ou nao :/
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar