读书人

急关于TSringList中查找不同值的有关问

发布时间: 2012-03-08 13:30:13 作者: rapoo

急,急,急,关于TSringList中查找不同值的问题,研究了半天没搞定
TStringList.Add('a')
TStringList.Add('b')
TStringList.Add('c')
TStringList.Add('a')
TStringList.Add('b')
TStringList.Add('c') 后,
TStringList中有6个值(a,b,c,a,b,c),如何知道TStringList 中只有三个(a,b,c)不同的值?只要求返回3

注意,还有这种情况

TStringList.Add('a')
TStringList.Add('a')
TStringList.Add('a')
要求返回值为1

[解决办法]
帮顶
回复内容太短了!
[解决办法]
帮顶
只知道比较笨的办法-遍历StringList
[解决办法]
遍历归类
[解决办法]
function calc_count(t:TStringList) :integer;
var
i,c:integer;
olds:string;
begin
t.sort;
c:=0;
olds:='';
for i:=0 to t.count-1 do
if olds<>t.strings[i] then
begin
inc(c);
olds:=t.strings[i];
end;
result:=c;
end;
[解决办法]
没有现成的函数可用,只有自己写算法了
为什么不在插入之前就确保没有重复值呢?
[解决办法]
排序,再循环strings[i],遇到与strings[i-1]不同则加一

读书人网 >.NET

热点推荐