type TRen = record
name: string;
age: Integer;
end; type TPeople = class
private
Fname: string;
Fage: Integer;
procedure Setname(const Value: string);
procedure Setage(const Value: Integer);
published
property name: string read Fname write Setname;
property age: Integer read Fage write Setage;
end; procedure TForm3.Button1Click(Sender: TObject);
var
MyRen: TRen;
MyDic: TDictionary<string,TRen>;
I: Integer;
MyKeyAry: TArray<string>;
MyRen2: TRen;
begin
MyDic := TDictionary<string,TRen>.Create();
try
//---------------------------------------
for I := to do
begin
MyRen.name := '群主'+IntToStr(I);
MyRen.age := I;
MyDic.Add('key'+IntToStr(I),MyRen);
end; //---------------------------------------
MyKeyAry := MyDic.Keys.ToArray;
for I := to MyDic.Count- do
begin
MyRen2 := MyRen;
MyRen2.name := '操蛋'+IntToStr(I);
MyDic.AddOrSetValue(MyKeyAry[I],MyRen2);
end; ShowMessage(MyDic['key1'].name);
finally
MyDic.Free;
end;
end; { TPeople } procedure TPeople.Setage(const Value: Integer);
begin
Fage := Value;
end; procedure TPeople.Setname(const Value: string);
begin
Fname := Value;
end; procedure TForm3.Button2Click(Sender: TObject);
var
MyPeople: TPeople;
MyDic: TObjectDictionary<string,TPeople>;
I: Integer;
MyKeyAry: TArray<string>;
begin
MyDic := TObjectDictionary<string,TPeople>.Create();
try
//---------------------------------------
for I := to do
begin
MyPeople := TPeople.Create;
MyPeople.name := '群主'+IntToStr(I);
MyPeople.age := I;
MyDic.Add('key'+IntToStr(I),MyPeople);
end; //---------------------------------------
MyKeyAry := MyDic.Keys.ToArray;
for I := to MyDic.Count- do
begin
//这里如果是结构就不能这样赋值,如果是对象就可以.
MyDic[MyKeyAry[I]].name := '操蛋'+IntToStr(I);
end; //---------------------------------------
//窗体显示
ShowMessage(MyDic['key1'].name); //---------------------------------------
//用这种方式释放吧,不搞了,以后就用这种方式来.
for I := to MyDic.Count- do
begin
MyDic[MyKeyAry[I]].Free;
end;
finally
MyDic.Free;
end;
end;

TDictionary字典 对象的释放。。。的更多相关文章

  1. VBS使用Scripting.Dictionary字典对象

    Scripting.Dictionary是个很有用的组件,其创建了类似于Key索引对应Value值的字典对象,并且在其内部提供了快速索引访问的机制,可以让我们通过Key直接索引到指定的Value,比遍 ...

  2. python 基础学习(字典对象,set对象)

    1.dict 字典对象 a.定义对象 d={'a':14,'b':12}b.通过key获取value d['a'] 方法1.判断key是否存在 if 'a' in d: d['a']方法2:通过用ge ...

  3. java 哪些情况下会使对象锁释放

    Java_多线程_锁释放 问:Java多线程运行环境中,在哪些情况下会使对象锁释放?答:由于等待一个锁的线程只有在获得这把锁之后,才能恢复运行,所以让持有锁的线程在不再需要锁的时候及时释放锁是很重要的 ...

  4. JavaScript中创建字典对象(dictionary)实例

    这篇文章主要介绍了JavaScript中创建字典对象(dictionary)实例,本文直接给出了实现的源码,并给出了使用示例,需要的朋友可以参考下 对于JavaScript来说,其自身的Array对象 ...

  5. GDI 对象的释放与内存泄漏的问题研究

    最近写了一个GDI 绘图的程序,过程中遇到一个奇怪的问题,就是 定时器定时一会GDI绘的图就消失了..后来经过分析,原来是 GDI对象数量过多 ,即GDI对象超过10000个 导致内存泄漏的问题.找到 ...

  6. Objective-c 字典对象

    oc 中的 NSDictionary 的作用同 java 中的字典类相同,提供了 “键-值”对的组合.比如,是用字典类实现对学生姓名和学号的存放,编号是一个键(唯一性),姓名是值.它的方法有: 下面通 ...

  7. C#+ArcEngine中com对象的释放问题

    1.问题描述 最近在写C#下AE的开发,在循环获取数据并修改时碰到了两个问题"超出系统资源"和"超出打开游标最大数":在网上看了一些资料,发现都是说在循环中没有 ...

  8. python爬虫requests json与字典对象互相转换

    import requests import json ''' json.loads(json_str) json字符串转换成字典 json.dumps(dict) 字典转换成json字符串 ''' ...

  9. 有一个字典对象,d = {'a':1,'b':2},请用尽量简洁的代码将d转换成{1: 'a', 2: 'b'}

    题目:有一个字典对象,d = {'a':1,'b':2},请用尽量简洁的代码将d转换成{1: 'a', 2: 'b'} 第一种方法: d = {'a': 1, 'b': 2}d = {value: k ...

随机推荐

  1. systick运用

    systick的原理前一篇博文有介绍,简而言之就是SysTick定时器是一个24位的倒计数,当倒计数为0时,将从RELOAD寄存器中取值作为定时器的初始值,同时可以选择在这个时候产生中断(异常号:15 ...

  2. volatile、synchronized、lock有什么区别,以及在哪些场景下使用哪种方式?

    [转]JVM锁机制volatile/synchronized/lock 1.volatile实现原理 (1)聊聊并发(一)——深入分析Volatile的实现原理 --硬件级别锁实现,Lock前缀指令会 ...

  3. optparser 模块 提取IP,端口,用户名,密码参数模板

    import optparse #class FtpClient(object): #自定义类可以自己修改 '''ftp客户端''' #def __init__(self): parser = opt ...

  4. 2940: [Poi2000]条纹(Multi_SG)

    2940: [Poi2000]条纹 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 114  Solved: 72[Submit][Status][Dis ...

  5. 运维Python面试题

    本章内容 1 osodjfoskjdofjsdjfjsdf 123 sdfdfadf   1 2 3 4 5 6 from django.db import models     class user ...

  6. vue/vux编译时出现 unexpected token <11:0-485>

    最近开发Vux项目,一直使用VS Code开发工具,可以格式化里面的<script>代码的: 但是今天突然无法格式化代码,而且编译报错.主要提示类似:unexpected token  & ...

  7. python2.7运行报警告:UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal解决办法

    1. 程序源代码报错部分: #选择年级if grade == '幼升小': outline.nianji().pop(0).click()elif grade == "一年级": ...

  8. 聊聊、Java 命令 第一篇

    网上很多讲 Javac 和 Java 命令的,我觉得还是要自己写一写,做一个自己的总结,也方便以后查询. 开始之前先看看 help 命令,基本上任何一个软件都会提供这个命令. 没有什么比 -help ...

  9. k8s与CICD--借助scp插件实现非容器项目的部署

    一直没有时间完成drone系列文章.drone-wechat插件实现了一半,由于企业微信token申请比较麻烦,所以也没有进展.今天抽出时间,研究了一下scp插件,主要目的是实现非容器项目的部署.其实 ...

  10. win 8系统下如何安装搭建python

    python的环境搭建除了python本身,还有Aptana和pip的安装.Aptana提供了更好的集成开发环境,pip主要用于安装第三方的包. 具体安装流程可参考以下两篇文章: InSky关于安装p ...