Bei einem ShortString/CharArray ist das egal, da eh jeder seinen eigenen Speicher hat.
Ansonsten kann man gern sonstwie durch das Array laufen und das zusammenfassen (also nur bei LongStrings)
Delphi-Quellcode:
for i := Low(A) to High(A) - 1 do
for j := i + 1 to High(A) do
if A[i].S = A[j].S then
A[i].S := A[j].S;
Ein CharArray mit 5 Bytes/AnsiChars wird insgesamt aber vermutlich dennoch weniger Speicher brauchen, als due zusammengefassten LongStrings.