インターフェース IRealmCollection[T]<T>
Realm によって返されるすべてのコレクションの基本である反復可能なソート可能なコレクション。
継承されたノード
Namespace: Realms
組み立て: Realm.dll
構文
public interface IRealmCollection<out T> : IReadOnlyList<T>, IReadOnlyCollection<T>, IEnumerable<T>, IEnumerable, INotifyCollectionChanged, INotifyPropertyChanged
型パラメータ
名前 | 説明 |
---|---|
t | コレクションに含まれる値のタイプ。 |
プロパティ
| このページを編集 ソースを表示IsFrozen
このコレクションが固定されているかどうかを示す値を取得します。 凍結されたコレクションは不変であり、どのスレッドからでもアクセスできます。 固定されたコレクションから読み取られたオブジェクトも固定されます。
宣言
bool IsFrozen { get; }
プロパティ値
タイプ | 説明 |
---|---|
ブール |
|
IsValid
このコレクションがまだ使用可能かどうか、つまりRealmインスタンスが閉じられておらず、 かつ 多量の関係を表している場合は、その親オブジェクトが削除されていないことを示す値を取得します。
宣言
bool IsValid { get; }
プロパティ値
タイプ | 説明 |
---|---|
ブール |
|
ObjectSchema
コレクションに含まれる IRealmObject 、 IEMededObject 、または IAsyncMongoDB インスタンスの永続化プロパティを記述する ObjectSchema を取得します。コレクションにプリミティブ値が含まれている場合、 ObjectSchemaはnull
になります。
宣言
ObjectSchema? ObjectSchema { get; }
プロパティ値
タイプ | 説明 |
---|---|
ObjectSchema | コレクションに含まれるオブジェクトのスキーマ。 |
Realm
このコレクションが属するRealmインスタンスを取得します。
宣言
Realm Realm { get; }
プロパティ値
タイプ | 説明 |
---|---|
Realm | このコレクションが属するRealmインスタンス。 |
メソッド
| このページを編集 ソースを表示Contains(オブジェクト)
要素がIRealmCollection<T>にあるかどうかを判断します。
宣言
bool Contains(object? item)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
オブジェクト | item | IRealmCollection<T>で検索するオブジェクト。 |
戻り値
タイプ | 説明 |
---|---|
ブール | アイテムがIRealmCollection<T>で見つかった場合は true 。それ以外の場合は false です。 |
freeze()
このコレクションの固定スナップショットを作成します。 固定されたコピーは、任意のスレッドから読み取ってクエリを実行できます。
コレクションを固定すると、独自のライフサイクルを持つ固定 Realm も作成されますが、元のコレクションを生成したライブ Realm が完全に閉じている場合(つまり 全スレッドにわたるすべての インスタンスが閉じられます)。固定された Realm とコレクションも閉じられます。 凍結されたコレクションは通常どおりクエリできますが、これを何らかの方法で変更しようとしたり、リスナーを登録しようとしたりすると、 RealmFrozenExceptionがスローされます。 注: 異なるバージョンを持つ多数の固定オブジェクトを有効にすると、Realm のファイルサイズに悪影響が及ぶ可能性があります。 このような状況を回避するには、 MaxNumberOfActiveVersionsを設定します。宣言
IRealmCollection<out T> Freeze()
戻り値
タイプ | 説明 |
---|---|
IRealmCollection <T> | このコレクションの固定コピー。 |
その他の参照
IndexOf(object?)
指定されたオブジェクトを検索し、 IRealmCollection<T>全体内で最初に出現した の 0 から始まるインデックスを返します。
宣言
int IndexOf(object? item)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
オブジェクト | item | IRealmCollection<T>で検索するオブジェクト。 |
戻り値
タイプ | 説明 |
---|---|
整数 | IRealmCollection<T>内で最初に出現する項目の 0 から始まるインデックス(見つかった場合)それ以外の場合は、-1。 |
SubscribeForNotifications(Notificationアドレス呼び出し<T>
この IRealmCollection[T]<T> が変更されるたびに呼び出されるコールバックを登録します。
宣言
IDisposable SubscribeForNotifications(NotificationCallbackDelegate<out T> callback, KeyPathsCollection? keyPathCollection = null)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
NULLではないため、<T> | コールバック | 更新されたIRealmCollection<T>で呼び出されるコールバック。 |
KeyPathsCollection | keyPathCollection | プロパティ内のどの変更が通知を発生させるかを示すキー パスの任意のコレクション。 |
戻り値
タイプ | 説明 |
---|---|
IDisposable | サブスクライブ トークン。 変更通知を受信する限り、有効にしておく必要があります。 通知の受信を停止するには、 Dispose()を呼び出します。 |
コメント
コールバックは最初のIRealmCollection<T>によって非同期に呼び出され、コレクション内のいずれかのオブジェクトまたはコレクション内のどのオブジェクトを変更するかごとに、再度呼び出されます。 コールバックが初期結果で初めて呼び出されるときに、 changes
パラメータはnull
になります。 その後の呼び出しごとに、結果内のどの行が追加、削除、または変更されたかに関する情報が含まれます。
コレクションに Realmオブジェクトが含まれている場合は、オプションのKeyPathsCollectionを渡すことができます。これは、プロパティのどの変更が通知を発生させるかを示します。 KeyPathsCollectionが渡されない場合は、 Fullが使用されるため、すべての最上位プロパティと4ネストされたレベルに対する変更によって通知が行われます。 構築方法の詳細については、「 KeyPathsCollection 」を参照してください。
書込みトランザクション (write transaction) がこのIRealmCollection<T>内のオブジェクトを変更しなかった場合、コールバックはまったく呼び出されません。
ブロックが呼び出される時点で、 IRealmCollection<T>オブジェクトは完全に評価され最新の状態になります。また、同じスレッドで書込みトランザクションを実行したり、 Refresh()を明示的に呼び出したりしない限り、そのノードにアクセスは、ブロッキング機能を実行しません。
通知は標準のイベント ループ経由で配信されるため、イベント ループが他のアクティビティによってブロックされている間は配信できません。 通知をすぐに配信できない場合は、複数の通知が 1 つの通知に統合されることがあります。 これには、初期コレクションの通知を含めることができます。