for I := mStrings.Count - 1 downto 0 do
  if mStrings.IndexOf(mStrings[I]) <> I then
    mStrings.Delete(I);关注中...........

解决方案 »

  1.   

    for I := mStrings.Count - 1 downto 0 do begin
      J := mStrings.IndexOf(mStrings[I])
      if J <> I then mStrings.Delete(J);
    end;
      

  2.   

    To zswang(伴水)(* 嘻 *) :谢谢你的帮助,Delete(I)之后,仍需检查,因为重复的可能不止一次(可能上面未描述清楚)。
      

  3.   

    另外,IndexOf()得到的是的一条匹配的,J和I可能总是相等的吧。
      

  4.   

    补充上面一点,当某一ID第一次出现时,J和I总会相等。