クラスのコレクション拡張機能
コレクションに対する通知関連の機能を公開する拡張メソッドのセット。
Namespace: Realms
組み立て: Realm.dll
構文
public static class CollectionExtensions
メソッド
| このページを編集 ソースを表示AsRealmCollection=T>(IDIdionary=string,<T> T>)
IDictionary=TKey, TValue> を IRealmCollection=T><T> にキャストし、 INotifyCollectionchanged を実装する便宜的メソッド。
宣言
public static IRealmCollection<KeyValuePair<string, T>> AsRealmCollection<T>(this IDictionary<string, T> dictionary)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
IDictionary < string , T> | dictionary | 変更を観察するには、 IDDictionary+TKey, TValue>を使用します。 |
戻り値
タイプ | 説明 |
---|---|
IRealmCollection < KeyValuePear < string , T> | コレクション( INotifyCollectionchangedを実装)。 |
型パラメータ
名前 | 説明 |
---|---|
t | 辞書内の要素のタイプ。 |
その他の参照
AsRealmCollection=T>(IList=T>)<T><T>
INotifyCollectionchanged を実装する<T> IRealmCollection= T> に<T> IList をキャストする便宜的メソッド。
宣言
public static IRealmCollection<T> AsRealmCollection<T>(this IList<T> list)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
IList <T> | list | 変更を監視するIList<T> 。 |
戻り値
タイプ | 説明 |
---|---|
IRealmCollection <T> | コレクション( INotifyCollectionchangedを実装)。 |
型パラメータ
名前 | 説明 |
---|---|
t | リスト内の要素のタイプ。 |
その他の参照
AsRealmCollection=T>(ISet=T>)<T><T>
ISet<T> <T>=T> を IRealmCollection=T======================================================================================
宣言
public static IRealmCollection<T> AsRealmCollection<T>(this ISet<T> set)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
ISet<T> | セット | 変更を観察するISet<T> 。 |
戻り値
タイプ | 説明 |
---|---|
IRealmCollection <T> | コレクション( INotifyCollectionchangedを実装)。 |
型パラメータ
名前 | 説明 |
---|---|
t | セット内の要素のタイプ。 |
その他の参照
<T>AsRealmCollection=T>(IQueryable=T>)<T>
INotifyCollectionchanged を実装する<T> IRealmCollection= T> に<T> IQueryable をキャストする便利なメソッド。
宣言
public static IRealmCollection<T> AsRealmCollection<T>(this IQueryable<T> query) where T : IRealmObjectBase?
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
IQueryable <T> | クエリ | 変更を監視するためのIQueryable<T> 。 |
戻り値
タイプ | 説明 |
---|---|
IRealmCollection <T> | コレクション( INotifyCollectionchangedを実装)。 |
型パラメータ
名前 | 説明 |
---|---|
t | 結果内のRealmObjectまたは埋め込みオブジェクトのタイプ。 |
その他の参照
以前<T>string
Realm ベースの IDictionary[TKey, TValue] <T>を、辞書の値の Realm ベースの IQueryable[T ] に変換します。
宣言
public static IQueryable<T> AsRealmQueryable<T>(this IDictionary<string, T?> dictionary) where T : IRealmObjectBase
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
IDictionary < string , T> | dictionary | 対多関係プロパティから取得されたオブジェクトの辞書。 |
戻り値
タイプ | 説明 |
---|---|
IQueryable <T> | 辞書に含まれる値を表すクエリ可能なコレクション。 |
型パラメータ
名前 | 説明 |
---|---|
t | 辞書に含まれる値の型。 |
コメント
このメソッドは、 値のコレクションのみを返し、 KeyValuePear=TKey, TValue = のコレクションではなく、辞書の値を表す基礎となる Realm クエリを実際に作成するという点で AsQueryable(ienumerable) とは動作が異なります。つまり、すべての LINQ メソッドはデータベースによって実行され、LINQ フィルターや順序付けを適用した後でも通知をサブスクライブできます。
例
var query = owner.DictOfDogs.AsRealmQueryable()
.Where(d => d.Age > 3)
.OrderBy(d => d.Name);
var token = query.SubscribeForNotifications((sender, changes, error) =>
{
// You'll be notified only when dogs older than 3 have been added/removed/updated
// and the sender collection will be ordered by Name
});
例外
タイプ | 条件 |
---|---|
ArgumentException | 辞書が Realm によって管理されていない場合にスローされます。 |
AsRealmQueryable[T](IList[T])<T><T>
Realm ベースの IList<T> を Realm ベースの IQueryable [T]<T> に変換します。
宣言
public static IQueryable<T> AsRealmQueryable<T>(this IList<T> list) where T : IRealmObjectBase
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
IList <T> | list | 対多関係プロパティから取得されたオブジェクトのリスト。 |
戻り値
タイプ | 説明 |
---|---|
IQueryable <T> | リストに含まれるオブジェクトを表すクエリ可能なコレクション。 |
型パラメータ
名前 | 説明 |
---|---|
t | リストに含まれるオブジェクトのタイプ。 |
コメント
このメソッドは、リストを表すための基礎となる Realm クエリを実際に作成するという点でAsQueryable(ienumerable)とは動作が異なります。 つまり、すべての LINQ メソッドはデータベースによって実行され、LINQ フィルターや順序付けを適用した後でも通知をサブスクライブできます。
例
var dogs = owner.Dogs;
var query = dogs.AsRealmQueryable()
.Where(d => d.Age > 3)
.OrderBy(d => d.Name);
var token = query.SubscribeForNotifications((sender, changes, error) =>
{
// You'll be notified only when dogs older than 3 have been added/removed/updated
// and the sender collection will be ordered by Name
});
例外
タイプ | 条件 |
---|---|
ArgumentException | リストが Realm によって管理されていない場合にスローされます。 |
AsRealmQueryable[T](ISet[T])<T><T>
Realm ベースの ISet を Realm<T> ベースの IQueryable [T]<T> に変換します。
宣言
public static IQueryable<T> AsRealmQueryable<T>(this ISet<T> set) where T : IRealmObjectBase
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
ISet<T> | セット | 対多関係プロパティから取得されたオブジェクトのセット。 |
戻り値
タイプ | 説明 |
---|---|
IQueryable <T> | セットに含まれるオブジェクトを表すクエリ可能なコレクション。 |
型パラメータ
名前 | 説明 |
---|---|
t | セットに含まれるオブジェクトのタイプ。 |
コメント
このメソッドは、セットを表すための基礎となる Realm クエリを実際に作成するという点でAsQueryable(ienumerable)とは動作が異なります。 つまり、すべての LINQ メソッドはデータベースによって実行され、LINQ フィルターや順序付けを適用した後でも通知をサブスクライブできます。
例
var dogs = owner.Dogs;
var query = dogs.AsRealmQueryable()
.Where(d => d.Age > 3)
.OrderBy(d => d.Name);
var token = query.SubscribeForNotifications((sender, changes, error) =>
{
// You'll be notified only when dogs older than 3 have been added/removed/updated
// and the sender collection will be ordered by Name
});
例外
タイプ | 条件 |
---|---|
ArgumentException | リストが Realm によって管理されていない場合にスローされます。 |
Filter<T>(IDictionary<string, T?>, string, params QueryArgument[])
辞書の値に NPredify ベースのフィルターを適用します。 を使用すると、LINQ プロバイダーによって現在サポートされておらず、フィルタリングに加えて SORT および DNS 句をサポートしているより複雑なクエリを作成できます。
宣言
public static IQueryable<T> Filter<T>(this IDictionary<string, T?> dictionary, string predicate, params QueryArgument[] arguments) where T : IRealmObjectBase
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
IDictionary < string , T> | dictionary | Realm 辞書。 |
string | 述語 | 適用される述語。 |
QueryArgument[] | arguments | 述語の置換に使用される値。 すべてのプリミティブ型は暗黙的に RealmValue に変換されるため、受け入れられることに注意してください。 |
戻り値
タイプ | 説明 |
---|---|
IQueryable <T> | 述語に一致する辞書値のクエリ可能な観察可能なコレクション。 |
型パラメータ
名前 | 説明 |
---|---|
t | フィルタリングされる辞書の値の型。 |
コメント
追加のフィルターを適用しない場合は、述語を適用した後、 <T>AsRealmCollection=T>(IQueryable=T>)<T> を使用することをお勧めします。
例
joe.DictOfDogs.Filter("Name BEGINSWITH $0", "R");
その他の参照
| このページを編集 ソースを表示<T>[Filter[T](IList[]],string,<T> パラメータは QueryArメント[])
コレクションに対して NPredate ベースのフィルターを適用します。 を使用すると、LINQ プロバイダーによって現在サポートされておらず、フィルタリングに加えて SORT および DNS 句をサポートしているより複雑なクエリを作成できます。
宣言
public static IQueryable<T> Filter<T>(this IList<T> list, string predicate, params QueryArgument[] arguments) where T : IRealmObjectBase
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
IList <T> | list | Realm リスト。 |
string | 述語 | 適用される述語。 |
QueryArgument[] | arguments | 述語の置換に使用される値。 すべてのプリミティブ型は暗黙的に RealmValue に変換されるため、受け入れられることに注意してください。 |
戻り値
タイプ | 説明 |
---|---|
IQueryable <T> | 述語に一致するオブジェクトのクエリ可能な観察可能なコレクション。 |
型パラメータ
名前 | 説明 |
---|---|
t | フィルタリングされるオブジェクトの型。 |
コメント
追加のフィルターを適用しない場合は、述語を適用した後、 <T>AsRealmCollection=T>(IQueryable=T>)<T> を使用することをお勧めします。
例
var joe = realm.All<Person>().Single(p => p.Name == "Joe");
joe.dogs.Filter("Name BEGINSWITH $0", "R");
その他の参照
| このページを編集 ソースを表示Filter<T>(ISet<T>, string, params QueryArgument[])
コレクションに対して NPredate ベースのフィルターを適用します。 を使用すると、LINQ プロバイダーによって現在サポートされておらず、フィルタリングに加えて SORT および DNS 句をサポートしているより複雑なクエリを作成できます。
宣言
public static IQueryable<T> Filter<T>(this ISet<T> set, string predicate, params QueryArgument[] arguments) where T : IRealmObjectBase
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
ISet<T> | セット | Realm セット。 |
string | 述語 | 適用される述語。 |
QueryArgument[] | arguments | 述語の置換に使用される値。 すべてのプリミティブ型は暗黙的に RealmValue に変換されるため、受け入れられることに注意してください。 |
戻り値
タイプ | 説明 |
---|---|
IQueryable <T> | 述語に一致するオブジェクトのクエリ可能な観察可能なコレクション。 |
型パラメータ
名前 | 説明 |
---|---|
t | フィルタリングされるオブジェクトの型。 |
コメント
追加のフィルターを適用しない場合は、述語を適用した後、 <T>AsRealmCollection=T>(IQueryable=T>)<T> を使用することをお勧めします。
例
var joe = realm.All<Person>().Single(p => p.Name == "Joe");
joe.dogs.Filter("Name BEGINSWITH $0", "R");
その他の参照
| このページを編集 ソースを表示[Filter](IQueryable[]]、<T> <T>string、パラメーター QueryArメント[])
コレクションに対して NPredate ベースのフィルターを適用します。 を使用すると、LINQ プロバイダーによって現在サポートされておらず、フィルタリングに加えて SORT および DNS 句をサポートしているより複雑なクエリを作成できます。
宣言
public static IQueryable<T> Filter<T>(this IQueryable<T> query, string predicate, params QueryArgument[] arguments)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
IQueryable <T> | クエリ | すべての <T>()を呼び出すことによって取得される クエリ可能なコレクション 。 |
string | 述語 | 適用される述語。 |
QueryArgument[] | arguments | 述語の置換に使用される値。 すべてのプリミティブ型は暗黙的に RealmValue に変換されるため、受け入れられることに注意してください。 |
戻り値
タイプ | 説明 |
---|---|
IQueryable <T> | 述語に一致するオブジェクトのクエリ可能な観察可能なコレクション。 |
型パラメータ
名前 | 説明 |
---|---|
t | フィルタリングされるオブジェクトの型。 |
コメント
追加のフィルターを適用しない場合は、述語を適用した後、 <T>AsRealmCollection=T>(IQueryable=T>)<T> を使用することをお勧めします。
例
var results1 = realm.All<Foo>("Bar.IntValue > 0");
var results2 = realm.All<Foo>("Bar.IntValue > 0 SORT(Bar.IntValue ASC Bar.StringValue DESC)");
var results3 = realm.All<Foo>("Bar.IntValue > 0 SORT(Bar.IntValue ASC Bar.StringValue DESC) DISTINCT(Bar.IntValue)");
var results4 = realm.All<Foo>("Bar.IntValue > $0 || (Bar.String == $1 && Bar.Bool == $2)", 5, "small", true);
その他の参照
| このページを編集 ソースを表示<T>move=T=(IList=int======<T> =============================
指定した項目をリスト内の新しい位置に移動します。
宣言
public static void Move<T>(this IList<T> list, int from, int to)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
IList <T> | list | 移動が行われるリスト。 |
整数 | from | 移動されるアイテムのインデックス。 |
整数 | 次の行動をします: | アイテムの移動先の新しい位置。 |
型パラメータ
名前 | 説明 |
---|---|
t | リスト内のオブジェクトのタイプ。 |
コメント
この拡張メソッドは、 RemoveAt(int)を呼び出してからInsert(int, T)を呼び出しても、スタンドアロンのリストでも機能します。
例外
タイプ | 条件 |
---|---|
ArgumentOutOfRangeException | インデックスが 0 未満、またはカウント- 1 より大きい場合にスローされます。 |
移動<T> 1<T> 時間
指定した項目をリスト内の新しい位置に移動します。
宣言
public static void Move<T>(this IList<T> list, T item, int index)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
IList <T> | list | 移動が行われるリスト。 |
t | item | 移動されるアイテム。 |
整数 | index | アイテムの移動先の新しい位置。 |
型パラメータ
名前 | 説明 |
---|---|
t | リスト内のオブジェクトのタイプ。 |
コメント
この拡張メソッドは、 Remove(T)を呼び出してからInsert(int, T)を呼び出しても、スタンドアロンのリストでも機能します。
例外
タイプ | 条件 |
---|---|
ArgumentOutOfRangeException | インデックスが 0 未満、またはカウント- 1 より大きい場合にスローされます。 |
SubscribeAsync<T>(IQueryable<T>,SubscriptionOptions?, WaitForSyncMode, CancelToken?)
アクティブなFlexible Syncサブスクライブのセットにクエリを追加します。 クエリは、同じタイプの既存のクエリと OR ステートメントを介して結合されます。
宣言
public static Task<IQueryable<T>> SubscribeAsync<T>(this IQueryable<T> query, SubscriptionOptions? options = null, WaitForSyncMode waitForSync = WaitForSyncMode.FirstTime, CancellationToken? cancellationToken = null) where T : IRealmObject
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
IQueryable <T> | クエリ | サーバー上で一致するクエリ。 |
SubscriptionOptions | options | 実行される挿入の名前やタイプを制御する サブスクライブ オプション。 |
WaitForSyncMode | waitForSync | このメソッドがサーバーがサブスクリプションに一致するオブジェクトを送信するまで非同期に待機するタイミングを制御するパラメーター。 |
CancelTokenか。 | completedToken | サーバーとの同期の待機をキャンセルするための任意のキャンセル トークン。 操作をキャンセルすると、待機自体がキャンセルされるだけで、実際のサブスクライブはキャンセルされないため、タスクがキャンセルされた場合でもサブスクリプションは追加されることに注意してください。 サブスクリプションを削除するには、 Reactive<T> <T>を使用できます。 |
戻り値
タイプ | 説明 |
---|---|
タスク< IQueryable <T> | サブスクリプションセットに追加された後の元のクエリ。 |
型パラメータ
名前 | 説明 |
---|---|
t | クエリ結果内のオブジェクトの型。 |
コメント
すでに存在するクエリを追加しても何も行われません。
このメソッドは、 <T>Add=T>(IQueryable=T>,<T> SubscriptionOptions?) を呼び出してから WaitForSyncAsync(CancelToken ?) を呼び出すのとほぼ同等です。
その他の参照
| このページを編集 ソースを表示すべて<T>string<T>
IDDictionary= TKey, TValue <T>========================================================================================
宣言
public static IDisposable SubscribeForKeyNotifications<T>(this IDictionary<string, T> dictionary, DictionaryNotificationCallbackDelegate<T> callback)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
IDictionary < string , T> | dictionary | 変更を観察するには、 IDDictionary+TKey, TValue>を使用します。 |
DictionaryNotificationCallbackDeletegate <T> | コールバック | 更新されたIRealmCollection<T>で呼び出されるコールバック。 |
戻り値
タイプ | 説明 |
---|---|
IDisposable | サブスクライブ トークン。 変更通知を受信する限り、有効にしておく必要があります。 通知の受信を停止するには、 Dispose()を呼び出します。 |
型パラメータ
名前 | 説明 |
---|---|
t | 辞書内の要素のタイプ。 |
その他の参照
<T>stringstring
IDDictionary= TKey, TValue == IRealmCollection=T======================================================================================<T>
宣言
public static IDisposable SubscribeForNotifications<T>(this IDictionary<string, T> dictionary, NotificationCallbackDelegate<KeyValuePair<string, T>> callback, KeyPathsCollection? keyPathsCollection = null)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
IDictionary < string , T> | dictionary | 変更を観察するには、 IDDictionary+TKey, TValue>を使用します。 |
NULLではない文字string | コールバック | 更新されたIRealmCollection<T>で呼び出されるコールバック。 |
KeyPathsCollection | keyPathsCollection | プロパティ内のどの変更が通知を発生させるかを示す任意のKeyPathsCollection 。 |
戻り値
タイプ | 説明 |
---|---|
IDisposable | サブスクライブ トークン。 変更通知を受信する限り、有効にしておく必要があります。 通知の受信を停止するには、 Dispose()を呼び出します。 |
型パラメータ
名前 | 説明 |
---|---|
t | 辞書内の要素のタイプ。 |
その他の参照
Sub すべて<T><T><T>
宣言
public static IDisposable SubscribeForNotifications<T>(this IList<T> list, NotificationCallbackDelegate<T> callback, KeyPathsCollection? keyPathsCollection = null)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
IList <T> | list | 変更を監視するIList<T> 。 |
NULLではないため、<T> | コールバック | 更新されたIRealmCollection<T>で呼び出されるコールバック。 |
KeyPathsCollection | keyPathsCollection | プロパティ内のどの変更が通知を発生させるかを示す任意のKeyPathsCollection 。 |
戻り値
タイプ | 説明 |
---|---|
IDisposable | サブスクライブ トークン。 変更通知を受信する限り、有効にしておく必要があります。 通知の受信を停止するには、 Dispose()を呼び出します。 |
型パラメータ
名前 | 説明 |
---|---|
t | リスト内の要素のタイプ。 |
その他の参照
Sub すべて<T><T><T>
ISet<T> を IRealmCollection< T><T> にキャストし、変更通知をサブスクライブする便利なメソッド。
宣言
public static IDisposable SubscribeForNotifications<T>(this ISet<T> set, NotificationCallbackDelegate<T> callback, KeyPathsCollection? keyPathsCollection = null)
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
ISet<T> | セット | 変更を観察するISet<T> 。 |
NULLではないため、<T> | コールバック | 更新されたIRealmCollection<T>で呼び出されるコールバック。 |
KeyPathsCollection | keyPathsCollection | プロパティ内のどの変更が通知を発生させるかを示す任意のKeyPathsCollection 。 |
戻り値
タイプ | 説明 |
---|---|
IDisposable | サブスクライブ トークン。 変更通知を受信する限り、有効にしておく必要があります。 通知の受信を停止するには、 Dispose()を呼び出します。 |
型パラメータ
名前 | 説明 |
---|---|
t | セット内の要素のタイプ。 |
その他の参照
Sub すべて<T><T><T>
IQueryable=T><T> を<T> IRealmCollection=T===================================================
宣言
public static IDisposable SubscribeForNotifications<T>(this IQueryable<T> results, NotificationCallbackDelegate<T> callback, KeyPathsCollection? keyPathsCollection = null) where T : IRealmObjectBase?
パラメーター
タイプ | 名前 | 説明 |
---|---|---|
IQueryable <T> | 結果 | 変更を監視するためのIQueryable<T> 。 |
NULLではないため、<T> | コールバック | 更新されたIRealmCollection<T>で呼び出されるコールバック。 |
KeyPathsCollection | keyPathsCollection | プロパティ内のどの変更が通知を発生させるかを示す任意のKeyPathsCollection 。 |
戻り値
タイプ | 説明 |
---|---|
IDisposable | サブスクライブ トークン。 変更通知を受信する限り、有効にしておく必要があります。 通知の受信を停止するには、 Dispose()を呼び出します。 |
型パラメータ
名前 | 説明 |
---|---|
t | 結果内のRealmObjectまたは埋め込みオブジェクトのタイプ。 |