데이터를 저장하기 위해 Delphi 6과 함께 DeCAL의 DMultiMap 컨테이너를 사용하고 있습니다. 키는지도에 여러 번 나타날 수있는 문자열입니다.Delphi에서 DMultiMap (DeCAL)의 검색 결과를 올바르게 반복하는 방법은 무엇입니까?
주어진 키를 가진 모든 개체에 대해 올바르게 반복하는 방법을 궁금합니다.
윌이 코드 :
function IterateOverObjects(map: DMultimap);
var iter: DIterator;
begin
iter := map.locate(['abc']);
while IterateOver(iter) do
begin
// do something with the value...
end;
end;
반환 키와 'ABC'과의 모든 객체? 또는 'abc'를 키로 사용하여 첫 번째 객체에서 시작하여지도의 모든 객체를 반환합니까?
편집 : 테스트되었습니다. 'abc'를 키로 사용하여 첫 번째 객체에서 시작하여지도의 모든 객체를 반환합니다. 그렇다면 'abc'를 반복하는 가장 좋은 방법은 무엇입니까?
감사합니다. 나는 구문을 좋아한다. 그러나 2 가지 문제 : 동일한 항목에 무기한 유지되며 SetToKey 호출이 누락되었습니다. 귀하의 게시물에 함수의 수정 된 버전을 추가했지만 피어 검토를 한 후에 만 표시됩니다. – Name
@ 이름 : 수정 된 버전을 별도의 답변으로 게시해야합니다. – jalf
내 대답을 편집했습니다 – Linas