问题背景:有一组基金代码串,原逻辑按基金代码单个调整为按父子基金代码组作为条件获取查询结果
解决原理:采用TStringList类哈希表操作方式重组字符串
List := TStringList.Create;
List.Add('aaa=111'); List.Add('bbb=222'); List.Add('ccc=333'); List.Add('ddd=444'); ShowMessage(List.Names[1]); //bbb ShowMessage(List.ValueFromIndex[1]); //222 ShowMessage(List.Values['bbb']); //222
算法:
mapString := TStringList.Create;
tempString := TStringList.Create;
tempString.Delimiter:=',' ;
tempString.DelimitedText:= str;
for i := 0 to tempString.Count-1 do
begin
if mapString.Values[tempString[i]] = '' then
begin
sKey := tempString[i]+'='+tempString[i];
mapString.Add(sKey);
end
else
begin
sKey := tempString[i]+'='+mapString.Values[tempString[i]]+','+tempString[i];
mapString.Delete(mapString.IndexOfName(tempString[i]));
mapString.Add(sKey);
end;
end;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?