首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

急关于TSringList中查找不同值的有关问题,研究了半天没搞定

2012-03-08 
急,急,急,关于TSringList中查找不同值的问题,研究了半天没搞定TStringList.Add(a)TStringList.Add(b)T

急,急,急,关于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]不同则加一

热点排行