Delphi数据字典TDictionary

在 Delphi 中,创建一个数据字典通常意味着使用一种结构来存储键值对。Delphi 没有内建的字典类型,但你可以使用 TStringList 从 Classes 单元作为一个简单的键值对存储,或者你可以使用更复杂的第三方容器,如 TDictionary 从 Generics.Collections 单元。

以下是一个使用 TDictionary 的简单示例:

usesSystem.SysUtils, System.Generics.Collections;varDict: TDictionary<string, string>;Key: string;Value: string;
begin// 创建一个新的字典实例Dict := TDictionary<string, string>.Create;try// 添加一些键值对Dict.Add('Key1', 'Value1');Dict.Add('Key2', 'Value2');Dict.Add('Key3', 'Value3');// 遍历字典并输出键值对for Key in Dict.Keys dobeginValue := Dict[Key];WriteLn(Format('Key: %s, Value: %s', [Key, Value]));end;// 检查一个特定的键是否存在,并输出其值if Dict.ContainsKey('Key2') thenWriteLn(Format('Value for Key2: %s', [Dict['Key2']]))elseWriteLn('Key2 not found');// 移除一个键值对Dict.Remove('Key3');// 再次检查已移除的键是否存在if Dict.ContainsKey('Key3') thenWriteLn('Key3 still exists')elseWriteLn('Key3 has been removed');finally// 释放字典实例Dict.Free;end;
end;

uses
  System.SysUtils, System.Generics.Collections;

var
  Dict: TDictionary<string, string>;
  Key: string;
  Value: string;
begin
  // 创建一个新的字典实例
  Dict := TDictionary<string, string>.Create;
  try
    // 添加一些键值对
    Dict.Add('Key1', 'Value1');
    Dict.Add('Key2', 'Value2');
    Dict.Add('Key3', 'Value3');

    // 遍历字典并输出键值对
    for Key in Dict.Keys do
    begin
      Value := Dict[Key];
      WriteLn(Format('Key: %s, Value: %s', [Key, Value]));
    end;

    // 检查一个特定的键是否存在,并输出其值
    if Dict.ContainsKey('Key2') then
      WriteLn(Format('Value for Key2: %s', [Dict['Key2']]))
    else
      WriteLn('Key2 not found');

    // 移除一个键值对
    Dict.Remove('Key3');

    // 再次检查已移除的键是否存在
    if Dict.ContainsKey('Key3') then
      WriteLn('Key3 still exists')
    else
      WriteLn('Key3 has been removed');
  finally
    // 释放字典实例
    Dict.Free;
  end;
end;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/57158.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ArkUI自定义TabBar组件

在ArkUI中的Tabs&#xff0c;通过页签进行内容视图切换的容器组件&#xff0c;每个页签对应一个内容视图。其中内容是图TabContent作为Tabs的自组件&#xff0c;通过给TabContent设置tabBar属性来自定义导航栏样式。现在我们就根据UI设计的效果图来实现下图效果&#xff1a; 根…

【stm32】DMA的介绍与使用

DMA的介绍与使用 1、DMA简介2、存储器映像3、DMA框图4、DMA基本结构5、DMA请求6、数据宽度与对齐7、数据转运DMA&#xff08;存储器到存储器的数据转运&#xff09;程序编写&#xff1a; 8、ADC连续扫描模式DMA循环转运DMA配置&#xff1a;程序编写&#xff1a; 1、DMA简介 DM…

【python】OpenCV—Sort the Point Set from Top Left to Bottom Right

文章目录 1、功能描述2、代码实现3、效果展示4、更多例子5、参考 1、功能描述 给出一张图片&#xff0c;里面含有各种图形&#xff0c;取各种图形的中心点&#xff0c;从左到右从上到下排序 例如 2、代码实现 import cv2 import numpy as npdef process_img(img):img_gray c…

# linux从入门到精通-从基础学起,逐步提升,探索linux奥秘(十四)--计算机网络基础和相关命令

linux从入门到精通-从基础学起&#xff0c;逐步提升&#xff0c;探索linux奥秘&#xff08;十四&#xff09;–计算机网络基础和相关命令 一、计算机网络基础1&#xff08;Linux的网络基础&#xff09; 1、网络相关概述&#xff1a;网络发展 1&#xff09;信息传递 远古时期…

CANoe_数据回放功能功能介绍_时间段(区间)选择

CANoe的日志回放功能&#xff0c;可以选择时间段回放&#xff0c;这样可以在数据量很大的时候快速定位分析数据问题点 CANoe日志回放功能概述 CANoe的日志回放功能允许用户重现和分析已记录的CAN总线或其他网络总线数据。这些日志文件通常以CANoe自己的日志格式&#xff08;.b…

MarkDownload 剪裁网页插件配置使用全流程

前言 写在前面&#xff0c;大家有什么问题和需要可以跟我交流 需求 之前一直使用 Joplin 的剪裁网页功能&#xff0c;但是剪裁下来后不可避免的需要使用 Joplin 对剪裁下来的内容做处理&#xff0c;Joplin 用起来不是很习惯&#xff0c;所以在想可不可以用 Obsidian 来实现网…

雷池WAF自动化实现安全运营实操案例终极篇

免责声明 本教程仅为合法的教学目的而准备&#xff0c;严禁用于任何形式的违法犯罪活动及其他商业行为&#xff0c;在使用本教程前&#xff0c;您应确保该行为符合当地的法律法规&#xff0c;继续阅读即表示您需自行承担所有操作的后果&#xff0c;如有异议&#xff0c;请立即停…

OpenShift 4 - 云原生备份容灾 - Velero 和 OADP 基础篇

《OpenShift 4.x HOL教程汇总》 说明&#xff1a; 本文主要说明能够云原生备份容灾的开源项目 Velero 及其红帽扩展项目 OADP 的概念和架构篇。操作篇见《OpenShift 4 - 使用 OADP 对容器应用进行备份和恢复&#xff08;附视频&#xff09; 》 Velero 和 OADP 包含的功能和模…

three.js 毛玻璃着色器的效果

three.js 毛玻璃着色器的效果 在线链接&#xff1a;https://threehub.cn/#/codeMirror?navigationThreeJS&classifyshader&idgroundglass 国内站点预览&#xff1a;http://threehub.cn github地址: https://github.com/z2586300277/three-cesium-examples import…

MySQL基础笔记小结

1. mysql : 1.1启动与停止mysql&#xff1a; net start mysql80 net stop mysel80 1.2客户端连接&#xff1a; 2种,系统cmd与自带的cmd&#xff08;直接打开&#xff09; mysql -u root-p 1.2.1 数据存储 RDBMS&#xff1a;关系型数据库&#xff1a;建立在关系模型基础上&…

在海外留学/工作,如何报考微软mos认证?

重点首先得强调的是&#xff0c;即使在海外也可以顺利地在国内获取微软MOS认证&#xff01; 01 微软mos认证简介 Microsoft Office Specialist 简称MOS。是微软公司和第三方国际认证机构、全球三大IT测验与教学中心之一的思递波/Certiport公司于1997年联合推出的&#xff0c;…

python爬虫,爬取网页壁纸图片

python爬虫实战&#xff0c;爬取网页壁纸图片 使用python爬取壁纸图片&#xff0c;保存到本地。 爬取彼岸图网&#xff0c;网站地址https://pic.netbian.com/ 本人小白&#xff0c;记录一下学习过程。 开始前的准备 安装python环境&#xff0c;略。 python编辑器pycharm2…

ThinkPad T480拆机屏幕改装:便携式显示器DIY指南

ThinkPad T480拆机屏幕改装&#xff1a;便携式显示器DIY指南 本文记录了将旧笔记本电脑 T480 拆机屏幕改装为便携式显示器的全过程。作者在决定升级设备后&#xff0c;选择通过 DIY 方式利用原有的屏幕资源。文章详细介绍了屏幕驱动板的安装、螺丝孔的剪裁、排线连接及固定的步…

[AWS]RDS数据库版本升级

背景&#xff1a;由于AWS上mysql5.7版本不再支持&#xff0c;需要进行版本升级。 吐槽&#xff1a;每年都要来那么几次&#xff0c;真的有病一样&#xff0c;很烦。 步骤一、升级检查 AWS提供了一个python的升级检测脚本&#xff0c;可以按照一下脚本下载测试&#xff1a; [r…

Kibana可视化Dashboard如何基于字段是否包含某关键词进行过滤

kinana是一个功能强大、可对Elasticsearch数据进行可视化的开源工具。 我们在dashboard创建可视化时&#xff0c;有时需要将某个index里数据的某个字段根据是否包含某些特定关键词进行过滤&#xff0c;这个时候就可以用到lens里的filter功能很方便地进行操作。 如上图所示&…

架构师备考-背诵精华(系统架构评估)

系统架构评估是在对架构分析、评估的基础上&#xff0c;对架构策略的选取进行决策。它利用数学或逻辑分析技术&#xff0c;针对系统的一致性、正确性、质量属性、规划结果等不同方面&#xff0c;提供描述性、预测性和指令性的分析结果。 重要概念 敏感点&#xff1a;敏感点是…

docker 下载netcore 镜像

dotnet-docker/README.runtime.md at main dotnet/dotnet-docker GitHub docker pull mcr.microsoft.com/dotnet/runtime:8.0 docker pull mcr.microsoft.com/dotnet/runtime:3.1

二分查找算法 (算法详解+模板+例题)

文章目录 二分查找算法简介1.朴素的二分查找2. 在排序数组中查找元素的第一个和最后一个位置3. 搜索插入位置4. 山脉数组的峰顶索引5.寻找峰值6. 寻找旋转排序数组中的最小值 二分查找算法简介 二分查找算法并不是针对在数组有序的情况下,通过后面的题我们就会知道实际上只要是…

【贝加莱PLC基础教学】2.1 搜索并连接到对应的PLC(1)

【贝加莱PLC基础教学】目录大全_贝加莱plc p23 1361-CSDN博客 PLC其实和单片机差别不大&#xff0c;无非就是大一点的单片机。另外多加了一点点计算机网络和通讯知识&#xff0c;然而就是这一点点计算机网络知识让大家望而却步。 0.基础知识 在计算机网络中&#xff0c;我们通…

【MySQL】索引的机制、使用

在学习索引知识之前&#xff0c;我们可以先了解一下什么是索引。实际上&#xff0c;索引就是数据库中一个或多个列存储的结构&#xff0c;能够支持数据库管理系统在不扫描整张表的情况下也能查询到数据行&#xff0c;能够大大提升查询效率。举个例子&#xff0c;我们想要找到一…