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,一经查实,立即删除!

相关文章

修复jenkins SSH 免密登录发布服务器

SSH 免密登录配置和修复步骤&#xff1a; 1. 配置 SSH 免密登录 在本地主机执行以下命令&#xff0c;将公钥复制到目标服务器&#xff1a; ssh-copy-id bjpark172.27.xx.xx输入密码完成公钥传输。 2. 修复 SSH 免密登录失败的权限问题 如果免密登录失败&#xff0c;用root…

二叉树和度为二的有序树的区别

一、定义与结构 度为二的有序树&#xff1a; 在这种树结构中&#xff0c;每个节点最多有两个子节点。子节点的顺序是重要的&#xff0c;即使两个子节点的值相同&#xff0c;只要他们的位置不同&#xff0c;他们就被视为是不同的子节点。当一个节点只有一个子节点时&#xff0c;…

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…

schurter舒特滤波器KFA系列4301有源设备滤波器

概述 KFA模块集成了以下四大主要功能&#xff1a; 1. IEC C14型设备插座&#xff0c;符合IEC 60320-1标准。 2. 适用于5 x 20毫米保险丝的单极或双极保险丝座。 3. 适用于标准和医疗应用的滤波器。 4. 可选的电压选择器&#xff08;步进开关&#xff09;。 此模块提供三种安装…

【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…

window.location.href 传递参数以及 接收参数的方式

前提&#xff1a;两个不同的项目地址&#xff0c;但是在A项目中某个按钮跳转到B项目中。 A项目某页面传参&#xff1a; // 定义参数 let param1 "value1";// 设置window.location.href window.location.href "http://localhost:3000/selectData?paramData&…

try increasing the minimum deployment target IOS

最近Xcode真机运行报以下错误&#xff1a; SDK does not contain ‘libarclite’ at the path ‘/Users/XX/Desktop/CSDN/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a’; try increasing the minimum deployme…

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

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

【luogu P2148】 ED(SG函数)

参考另一位dalao的文章&#xff0c;无恶意 学习博弈论也可返回另一篇笔记 题目描述 小 E 与小 W 进行一项名为 E&D 游戏。 游戏的规则如下&#xff1a;桌子上有 2 n 2n 2n 堆石子&#xff0c;编号为 1 ∼ 2 n 1 \sim 2n 1∼2n。其中&#xff0c;为了方便起见&#xf…

雷池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 包含的功能和模…

JS中的toFixed()

最近使用到一个方法&#xff0c;有点特殊&#xff0c;记录下。toFixed() 它的返回值是字符串&#xff0c;在计算时需要注意。它的保留小数使用的是银行家算法&#xff0c;这里简单记录一下。 银行家舍入&#xff1a;所谓银行家舍入法&#xff0c;其实质是一种四舍六入五取偶&a…

干货|react router- loader 和组件 useEffect 加载数据的选择

loader 的优点&#xff1a; 集中式数据加载&#xff1a; 通过路由配置直接管理数据加载逻辑&#xff0c;将路由与数据需求紧密结合&#xff0c;减少组件中的逻辑复杂度。适合大型应用&#xff0c;在多级路由和页面跳转时更好地管理数据加载逻辑&#xff0c;避免在组件中重复处理…

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]numpy和numpy+mkl区别

NumPy是Python中一个开源的科学计算库&#xff0c;它使得Python能够支持大量的数组或者矩阵运算&#xff0c;以及其他科学计算上常用的函数。而NumPyMKL&#xff08;Intel Math Kernel Library&#xff09;则是在NumPy的基础上加入了Intel Math Kernel Library&#xff08;MKL&…