API:System.Bluetooth.TScanResponse

提供: RAD Studio API Documentation
移動先: 案内検索

System.Generics.Collections.TDictionarySystem.Generics.Collections.TEnumerableSystem.TObjectTScanResponse

Delphi

TScanResponse = class(TDictionary<TScanResponseKey, TBytes>);

C++

class PASCALIMPLEMENTATION TScanResponse : public System::Generics::Collections::TDictionary__2<TScanResponseKey,System::DynamicArray<System::Byte> >

プロパティ

種類 可視性 ソース ユニット
class public
System.Bluetooth.pas
System.Bluetooth.hpp
System.Bluetooth System.Bluetooth

説明

キー/値ペアのコレクション

System.Bluetooth.TScanResponse は System.Generics.Collections.TDictionary を継承しています。以下の内容はすべて System.Generics.Collections.TDictionary を参照しています。

キー/値ペアのコレクション

TDictionary は、キー/値ペアの汎用コレクションを表します。

このクラスは、キーのコレクションから値のコレクションへのマッピングを提供します。TDictionary オブジェクトを作成する際、初期容量、等価演算、初期コンテンツなどのパラメーターを指定できます。

メソッド AddAddOrSetValue、または Items プロパティを使用して、対応する値と関連づけられたキーを追加できます。

D[..] := V

エントリを削除するには、Remove または Clear (すべてのキー/値ペアを削除)を使用します。

キー/値ペアの追加や削除、およびキーの検索は、キーがハッシュされるため O(1)に近く効率的です。 キーは nil にすることはできず(値は nil になり得ますが)、また、キーには等価比較演算がなければなりません。

TryGetValueContainsKeyContainsValue の各メソッドで、キー/値の存在を確認することができます。

Items プロパティは、すべての辞書のエントリをリストします。また、Items プロパティをインデックス化することで、値を設定および取得することができます。この方法を値を設定すると、既存の値は上書きされます。

クラス TObjectDictionaryTDictionary から派生しており、ディクショナリ エントリからオブジェクトを解放するための自動メカニズムを提供します。

アクセス メソッド

このセクションでは、TDictionaryTObjectDictionary の読み書きのためのメソッドについて概説します。書き込み時のキーの重複の影響や、読み込み時にキーが見つからない場合などについても触れられています。

書き込み

メソッド インデックスの型   値の型   重複キーの場合
Add TKey TValue 例外
AddOrSetValue TKey TValue 上書き
Items TKey TValue 上書き
TryAdd TKey TValue false

読み込み

メソッド インデックス/入力の型   結果の型 キーが見つからなかった場合 メモ
ContainsKey TKey Boolean false True = 見つかった
ContainsValue TValue Boolean N/A True = 見つかった
ExtractPair TKey TPair デフォルトのペア TPair を返し、アイテムをディクショナリから削除
Items TKey TValue 例外 TryGetValue を使用すると例外を回避できる
operator [] TKey TValue 例外 C++ のみ
Keys N/A TKeyCollection N/A
ToArray N/A TArray<TPair<TKey,TValue>> N/A
TryGetValue TKey TValue, Boolean デフォルト、false TValue を返す
Values N/A TValueCollection N/A


反復処理

以下に、辞書の内容をイテレーション(反復)を使用するコードの例を示します。

Delphi

uses System.Generics.Collections;
procedure TForm1.Button1Click(Sender: TObject);
var
MyDict: TDictionary<string, TForm>;
begin
MyDict:= TDictionary<string, TForm>.Create;
try
MyDict.Add('Form1', Self);
for var Enum in MyDict do
ShowMessage(Enum.Key);
finally
MyDict.Free;
end;
end;
注意: TDictionary を使用する際、System.Generics.Collections ネームスペースを使用しなければなりません。

C++

#include <memory>
#include <system.Generics.Collections.hpp>

void __fastcall TForm2::Button1Click(TObject *Sender)
{
std::unique_ptr<TDictionary__2<String, String>>
strdict(new TDictionary__2<String, String>());

strdict->Add("Form1", "A Value");
for(const TPair__2<String,String> &pair: strdict.get()) {
ShowMessage(pair.Value);
}
}
ヒント: C++ は、C++ テンプレート用のコードしか生成しないため、コードは Delphi ジェネリックのコレクション(TDictionary)ではなく、STL コレクション(std::map)を使用する必要があります。
メモ: C++ は Delphi ジェネリック型をインスタンス化できないため、C++コードは、Delphi コードでジェネリック型がインスタンス化されている型のDelphi ジェネリック型のみを使用する必要があります。

関連項目

コード サンプル