Delphi XE System.Generics.Collections[2].TObjectDictionary - 键和/或值对象的集合

Delphi XE System.Generics.Collections[2].TObjectDictionary - 键和/或值对象的集合

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
TDictionaryOwnerships = set of (doOwnsKeys, doOwnsValues);
 
  TObjectDictionary<K,V> = class(TDictionary<K,V>)
  private
    FOwnerships: TDictionaryOwnerships;
  protected
    procedure KeyNotify(const Key: K; Action: TCollectionNotification); override;
    procedure ValueNotify(const Value: V; Action: TCollectionNotification); override;
  public
    constructor Create(Ownerships: TDictionaryOwnerships; ACapacity: Integer = 0); overload;
    constructor Create(Ownerships: TDictionaryOwnerships;
      const AComparer: IEqualityComparer<K>); overload;
    constructor Create(Ownerships: TDictionaryOwnerships; ACapacity: Integer;
      const AComparer: IEqualityComparer<K>); overload;
  end;

描述:

  • TObjectDictionary表示键和/或值对象的通用集合。它可以将关键点处理为对象,将值处理为对象或将两者都处理为对象。
  • TObjectDictionary能够自动处理对象的生存期。实例化TObjectDictionary时,Ownerships参数指定字典是否拥有键、值或两者。在Create方法中,动态检查类型参数。如果未指定所有权(空集),则TObjectDictionary的功能与TDictionary的相同。

以下读写TDictionary或TObjectDictionary的方法,包括写入时重复键或读取时找不到键的影响。

Write 写入

MethodIndex typeValue typeIf duplicate key方法功能描述
Add TKey TValue Exception  
AddOrSetValue TKey TValue Overwrite 添加键值对,即使键值已经存在。
Items TKey TValue Overwrite  

Read 读取

MethodIndex/input typeResult typeIf key not foundNotes
ContainsKey TKey Boolean false

测试字典中的键。

如果给定的键在字典中,则ContainsKey返回true,否则返回false。这是O(1)操作。

ContainsValue TValue Boolean n/a

检查字典中的值。如果给定值在字典中,则ContainsValue返回true,否则返回false。

这是一个O(n)运算,其中n是字典中的条目数。

ExtractPair TKey TPair Default pair

Returns TPair, removes item from dictionary

返回TPair,从字典中删除项

Items TKey TValue Exception

Use TryGetValue to avoid exception

使用TryGetValue避免异常

operator [] TKey TValue Exc C++ only
Keys n/a TKeyCollection n/a  
ToArray n/a TArray<TPair<TKey,TValue>> n/a  
TryGetValue TKey TValue, Boolean default,false Like Items[] without exception
Values n/a TValueCollection n/a

 

 

 

 

创建时间:2022.11.03  更新时间:

posted on   滔Roy  阅读(155)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
历史上的今天:
2021-11-03 C[5] 运算符 - 赋值、杂项、优先级
2020-11-03 Delphi 操作Windows系统睡眠-防止系统/电脑 进入睡眠或关闭显示器
2020-11-03 Delphi WinAPI SetThreadExecutionState - 防止系统在应用程序运行时进入睡眠状态或关闭显示器。

导航

点击右上角即可分享
微信分享提示