Extensões da Coleção de Classes
Um conjunto de métodos de extensões que expõem a funcionalidade relacionada a notificações em collection.
namespace: Realms
Conjunto: Realm.exe
Sintaxe
public static class CollectionExtensions
Métodos
| Editar esta página Ver fonteAsRealmCollection<T>(IDictionary<string, T>)
Um método de conveniência que converte IDictionary<TKey,TValue> para IRealmCollection<T> que implementa INotifyCollectionChanged.
Declaração
public static IRealmCollection<KeyValuePair<string, T>> AsRealmCollection<T>(this IDictionary<string, T> dictionary)
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
IDictionário<string, T> | Dicionário | O IDictionary<TKey, tvalue> a ser observado quanto às alterações. |
Devoluções
Tipo | Descrição |
---|---|
IRealmCollection<KeyValuePair<string, T>> | A collection, implementando INotifyCollectionChanged. |
Parâmetros de tipo
Nome | Descrição |
---|---|
t | Tipo dos elementos no dicionário. |
Veja também
| Editar esta página Ver fonteAsRealmCollection<T>(IList<T>)
Um método de conveniência que converte IList<T> para IRealmCollection<T> que implementa INotifyCollectionChanged.
Declaração
public static IRealmCollection<T> AsRealmCollection<T>(this IList<T> list)
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
IList<T> | Lista | O IList<T> para observar as alterações. |
Devoluções
Tipo | Descrição |
---|---|
IRealmCollection<T> | A collection, implementando INotifyCollectionChanged. |
Parâmetros de tipo
Nome | Descrição |
---|---|
t | Tipo dos elementos na lista. |
Veja também
| Editar esta página Ver fonteAsRealmCollection<T>(ISet<T>)
Um método de conveniência que converte ISet<T> para IRealmCollection<T> que implementa INotifyCollectionChanged.
Declaração
public static IRealmCollection<T> AsRealmCollection<T>(this ISet<T> set)
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
ISet<T> | set | O ISet<T> para observar as alterações. |
Devoluções
Tipo | Descrição |
---|---|
IRealmCollection<T> | A collection, implementando INotifyCollectionChanged. |
Parâmetros de tipo
Nome | Descrição |
---|---|
t | Tipo dos elementos no conjunto. |
Veja também
| Editar esta página Ver fonteAsRealmCollection<T>(IQueryable<T>)
Um método de conveniência que converte IQueryable<T> para IRealmCollection<T> que implementa INotifyCollectionChanged.
Declaração
public static IRealmCollection<T> AsRealmCollection<T>(this IQueryable<T> query) where T : IRealmObjectBase?
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
IQueryable<T> | Query | O IQueryable<T> para observar as alterações. |
Devoluções
Tipo | Descrição |
---|---|
IRealmCollection<T> | A collection, implementando INotifyCollectionChanged. |
Parâmetros de tipo
Nome | Descrição |
---|---|
t | Tipo de RealmObject ou EmbeddedObject nos resultados. |
Veja também
| Editar esta página Ver fonteAsRealmQueryable<T>(IDictionary<string, T?>)
Converte um IDictionary<TKey, TValue> apoiado por Realm em um IQueryable<T> apoiado por Realm de valores do dicionário.
Declaração
public static IQueryable<T> AsRealmQueryable<T>(this IDictionary<string, T?> dictionary) where T : IRealmObjectBase
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
IDictionário<string, T> | Dicionário | O dicionário de objetos como obtido de uma propriedade de relacionamento entre muitos. |
Devoluções
Tipo | Descrição |
---|---|
IQueryable<T> | Uma collection consultável que representa os valores contidos no dicionário. |
Parâmetros de tipo
Nome | Descrição |
---|---|
t | O tipo dos valores contidos no dicionário. |
Observações
Esse método funciona de forma diferente de AsQueryable(IEnumerable) , pois retorna apenas uma collection de valores, não uma collection de KeyValuePair<TKey,TValue> e, na verdade, cria uma query subjacente do Realm que representa os valores do dicionário. Isso significa que todos os métodos LINQ serão executados pelo reconhecimento de data center e também que você pode se inscrever para receber notificações mesmo depois de aplicar filtros ou pedidos LINQ.
Exemplos
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
});
Exceções
Tipo | Condição |
---|---|
ArgumentException | Lançado se o dicionário não for gerenciado pelo Realm. |
AsRealmQueryable<T>(IList<T>)
Converte um IList<T> apoiado por Realm em um IQueryable<T> apoiado por Realm .
Declaração
public static IQueryable<T> AsRealmQueryable<T>(this IList<T> list) where T : IRealmObjectBase
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
IList<T> | Lista | A lista de objetos como obtida de uma propriedade de relacionamento entre muitos. |
Devoluções
Tipo | Descrição |
---|---|
IQueryable<T> | Uma collection consultável que representa os objeto contidos na lista. |
Parâmetros de tipo
Nome | Descrição |
---|---|
t | O tipo dos objetos contidos na lista. |
Observações
Esse método funciona de forma diferente de AsQueryable(IEnumerable) , pois ele realmente cria uma query de Realm subjacente para representar a lista. Isso significa que todos os métodos LINQ serão executados pelo reconhecimento de data center e também que você pode se inscrever para receber notificações mesmo depois de aplicar filtros ou pedidos LINQ.
Exemplos
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
});
Exceções
Tipo | Condição |
---|---|
ArgumentException | Lançado se a lista não for managed pelo Realm. |
AsRealmQueryable<T>(ISSet<T>)
Converte um ISet<T> apoiado por Realm em um IQueryable<T> apoiado por Realm .
Declaração
public static IQueryable<T> AsRealmQueryable<T>(this ISet<T> set) where T : IRealmObjectBase
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
ISet<T> | set | O conjunto de objetos como obtido de uma propriedade de relacionamento entre muitos. |
Devoluções
Tipo | Descrição |
---|---|
IQueryable<T> | Uma coleção consultável que representa os objetos contidos no conjunto. |
Parâmetros de tipo
Nome | Descrição |
---|---|
t | O tipo dos objetos contidos no conjunto. |
Observações
Esse método funciona de forma diferente de AsQueryable(IEnumerable) , pois na verdade cria uma query de Realm subjacente para representar o conjunto. Isso significa que todos os métodos LINQ serão executados pelo reconhecimento de data center e também que você pode se inscrever para receber notificações mesmo depois de aplicar filtros ou pedidos LINQ.
Exemplos
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
});
Exceções
Tipo | Condição |
---|---|
ArgumentException | Lançado se a lista não for managed pelo Realm. |
Filtro<T>(IDictionary<string, T?>, string, params QueryArgument[])
Aplique um filtro baseado em NSPredicate sobre os valores do dicionário. Ele pode ser usado para criar queries mais complexas, que atualmente não são suportadas pelo provedor LINQ e suporta cláusulas SORT e DISTINCT, além de filtragem.
Declaração
public static IQueryable<T> Filter<T>(this IDictionary<string, T?> dictionary, string predicate, params QueryArgument[] arguments) where T : IRealmObjectBase
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
IDictionário<string, T> | Dicionário | Um dicionário Realm. |
string | predicado | O predicado que será aplicado. |
QueryArgument[] | arguments | Valores utilizados para substituição no predicado. Observe que todos os tipos primitivos são aceitos, pois são implicitamente convertidos para RealmValue. |
Devoluções
Tipo | Descrição |
---|---|
IQueryable<T> | Uma collection observável por query de valores de dicionário que correspondem ao predicado. |
Parâmetros de tipo
Nome | Descrição |
---|---|
t | O tipo dos valores do dicionário que serão filtrados. |
Observações
Se você não aplicar filtros adicionais, é recomendável usar AsRealmCollection<T>(IQueryable<T>) após aplicar o predicado.
Exemplos
joe.DictOfDogs.Filter("Name BEGINSWITH $0", "R");
Veja também
| Editar esta página Ver fonteFilter<T>(IList<T>, string, params QueryArgument[])
Aplique um filtro baseado em NSPredicate sobre uma collection. Ele pode ser usado para criar queries mais complexas, que atualmente não são suportadas pelo provedor LINQ e suporta cláusulas SORT e DISTINCT, além de filtragem.
Declaração
public static IQueryable<T> Filter<T>(this IList<T> list, string predicate, params QueryArgument[] arguments) where T : IRealmObjectBase
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
IList<T> | Lista | Uma lista de Realm. |
string | predicado | O predicado que será aplicado. |
QueryArgument[] | arguments | Valores utilizados para substituição no predicado. Observe que todos os tipos primitivos são aceitos, pois são implicitamente convertidos para RealmValue. |
Devoluções
Tipo | Descrição |
---|---|
IQueryable<T> | Uma collection observável por query de objeto que correspondem ao predicado. |
Parâmetros de tipo
Nome | Descrição |
---|---|
t | O tipo dos objetos que serão filtrados. |
Observações
Se você não aplicar filtros adicionais, é recomendável usar AsRealmCollection<T>(IQueryable<T>) após aplicar o predicado.
Exemplos
var joe = realm.All<Person>().Single(p => p.Name == "Joe");
joe.dogs.Filter("Name BEGINSWITH $0", "R");
Veja também
| Editar esta página Ver fonteFilter<T>(ISSet<T>, string, params QueryArgument[])
Aplique um filtro baseado em NSPredicate sobre uma collection. Ele pode ser usado para criar queries mais complexas, que atualmente não são suportadas pelo provedor LINQ e suporta cláusulas SORT e DISTINCT, além de filtragem.
Declaração
public static IQueryable<T> Filter<T>(this ISet<T> set, string predicate, params QueryArgument[] arguments) where T : IRealmObjectBase
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
ISet<T> | set | Um conjunto de Realm. |
string | predicado | O predicado que será aplicado. |
QueryArgument[] | arguments | Valores utilizados para substituição no predicado. Observe que todos os tipos primitivos são aceitos, pois são implicitamente convertidos para RealmValue. |
Devoluções
Tipo | Descrição |
---|---|
IQueryable<T> | Uma collection observável por query de objeto que correspondem ao predicado. |
Parâmetros de tipo
Nome | Descrição |
---|---|
t | O tipo dos objetos que serão filtrados. |
Observações
Se você não aplicar filtros adicionais, é recomendável usar AsRealmCollection<T>(IQueryable<T>) após aplicar o predicado.
Exemplos
var joe = realm.All<Person>().Single(p => p.Name == "Joe");
joe.dogs.Filter("Name BEGINSWITH $0", "R");
Veja também
| Editar esta página Ver fonteFiltro<T>(IQueryable<T>, string, params QueryArgument[])
Aplique um filtro baseado em NSPredicate sobre uma collection. Ele pode ser usado para criar queries mais complexas, que atualmente não são suportadas pelo provedor LINQ e suporta cláusulas SORT e DISTINCT, além de filtragem.
Declaração
public static IQueryable<T> Filter<T>(this IQueryable<T> query, string predicate, params QueryArgument[] arguments)
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
IQueryable<T> | Query | Uma collection de queries, obtida chamando All<T>(). |
string | predicado | O predicado que será aplicado. |
QueryArgument[] | arguments | Valores utilizados para substituição no predicado. Observe que todos os tipos primitivos são aceitos, pois são implicitamente convertidos para RealmValue. |
Devoluções
Tipo | Descrição |
---|---|
IQueryable<T> | Uma collection observável por query de objeto que correspondem ao predicado. |
Parâmetros de tipo
Nome | Descrição |
---|---|
t | O tipo dos objetos que serão filtrados. |
Observações
Se você não aplicar filtros adicionais, é recomendável usar AsRealmCollection<T>(IQueryable<T>) após aplicar o predicado.
Exemplos
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);
Veja também
| Editar esta página Ver fonteMove<T>(IList<T>, int, int)
Mova o item especificado para uma nova posição na lista.
Declaração
public static void Move<T>(this IList<T> list, int from, int to)
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
IList<T> | Lista | A lista onde a movimentação deve ocorrer. |
int | from | O índice do item que será movido. |
int | para | A nova posição para a qual o item será movido. |
Parâmetros de tipo
Nome | Descrição |
---|---|
t | Tipo dos objetos na lista. |
Observações
Esse método de extensão também funcionará para listas autônomas, chamando RemoveAt(int) e, em seguida, Insert(int, T).
Exceções
Tipo | Condição |
---|---|
ArgumentOutOfRangeException | Lançado se o índice for menor que 0 ou maior que Contagem - 1. |
Move<T>(IList<T>, T, int)
Mova o item especificado para uma nova posição na lista.
Declaração
public static void Move<T>(this IList<T> list, T item, int index)
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
IList<T> | Lista | A lista onde a movimentação deve ocorrer. |
t | item | O item que será movido. |
int | index | A nova posição para a qual o item será movido. |
Parâmetros de tipo
Nome | Descrição |
---|---|
t | Tipo dos objetos na lista. |
Observações
Esse método de extensão também funcionará para listas autônomas, chamando Remove(T) e, em seguida, Insert(int, T).
Exceções
Tipo | Condição |
---|---|
ArgumentOutOfRangeException | Lançado se o índice for menor que 0 ou maior que Contagem - 1. |
SubscribeAsync<T>(IQueryable<T>, SubscriptionOptions?, waitForSyncMode, CancellationToken?)
Adiciona uma query ao conjunto de assinaturas ativas de flexible sync. A query será unida por meio de uma declaração OR com quaisquer queries existentes para o mesmo tipo.
Declaração
public static Task<IQueryable<T>> SubscribeAsync<T>(this IQueryable<T> query, SubscriptionOptions? options = null, WaitForSyncMode waitForSync = WaitForSyncMode.FirstTime, CancellationToken? cancellationToken = null) where T : IRealmObject
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
IQueryable<T> | Query | A query que será correspondida no servidor. |
Opções de assinatura | opções | As opções de assinatura controlando o nome e/ou o tipo de inserção que será executada. |
Aguarde o modo de sincronização | Aguarde a sincronização | Um parâmetro que controla quando esse método deve esperar de forma assíncrona que o servidor envie os objetos correspondentes à assinatura. |
Token de cancelamento? | Token de cancelamento | Um token de cancelamento opcional para cancelar a espera pela sincronização com o servidor. Observe que o cancelamento da operação cancela apenas a espera em si e não a assinatura real, portanto, a assinatura será adicionada mesmo que a tarefa seja cancelada. Para remover a assinatura, você pode usar Remove<T>(IQueryable<T>, bool). |
Devoluções
Tipo | Descrição |
---|---|
Tarefa<IQueryable<T>> | A query original após ter sido adicionada ao conjunto de assinaturas. |
Parâmetros de tipo
Nome | Descrição |
---|---|
t | O tipo de objetos nos resultados da query. |
Observações
Adicionar uma query que já existe não é uma operação.
Esse método é aproximadamente equivalente a chamar Add<T>(IQueryable<T>, SubscriptionOptions?) e, em seguida, StandForSynchronizationAsync(CancelationToken?).
Veja também
| Editar esta página Ver fonteSubscribeForKeyNotifications<T>(IDictionary<string, T>, DicionarioNotificationCallbackDelegate<T>)
Um método de conveniência que converte IDictionary<TKey,TValue> para IRealmCollection<T> e se inscreve para receber as principais notificações de alteração.
Declaração
public static IDisposable SubscribeForKeyNotifications<T>(this IDictionary<string, T> dictionary, DictionaryNotificationCallbackDelegate<T> callback)
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
IDictionário<string, T> | Dicionário | O IDictionary<TKey, tvalue> a ser observado quanto às alterações. |
DicionárioNotificationCallbackDelegate<T> | chamada de resposta | A chamada de resposta a ser invocada com o IRealmCollection<T> atualizado. |
Devoluções
Tipo | Descrição |
---|---|
IDisposable | Um token de inscrição. Ele deve ser mantido ativo enquanto você quiser receber notificações de alteração. Para parar de receber notificações, ligue para Dispose(). |
Parâmetros de tipo
Nome | Descrição |
---|---|
t | Tipo dos elementos no dicionário. |
Veja também
| Editar esta página Ver fonteSubscribeForNotifications<T>(IDictionary<string, T>, NotificationCallbackDelegate<KeyValuePair<string, T>>, KeyPathsCollection?)
Um método de conveniência que converte IDictionary<TKey,TValue> para IRealmCollection<T> e se inscreve para receber notificações de alteração.
Declaração
public static IDisposable SubscribeForNotifications<T>(this IDictionary<string, T> dictionary, NotificationCallbackDelegate<KeyValuePair<string, T>> callback, KeyPathsCollection? keyPathsCollection = null)
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
IDictionário<string, T> | Dicionário | O IDictionary<TKey, tvalue> a ser observado quanto às alterações. |
NotificationCallbackDelegate<KeyValuePair<string, T>> | chamada de resposta | A chamada de resposta a ser invocada com o IRealmCollection<T> atualizado. |
KeyPathsCollection | keyPathsCollection | Um KeyPathsCollection opcional, que indica quais alterações nas propriedades devem gerar uma notificação. |
Devoluções
Tipo | Descrição |
---|---|
IDisposable | Um token de inscrição. Ele deve ser mantido ativo enquanto você quiser receber notificações de alteração. Para parar de receber notificações, ligue para Dispose(). |
Parâmetros de tipo
Nome | Descrição |
---|---|
t | Tipo dos elementos no dicionário. |
Veja também
| Editar esta página Ver fonteSubscribeForNotifications<T>(IList<T>, NotificationCallbackDelegate<T>, KeyPathsCollection?)
Um método de conveniência que converte IList<T> para IRealmCollection<T> e assina notificações de alteração.
Declaração
public static IDisposable SubscribeForNotifications<T>(this IList<T> list, NotificationCallbackDelegate<T> callback, KeyPathsCollection? keyPathsCollection = null)
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
IList<T> | Lista | O IList<T> para observar as alterações. |
NotificationCallbackDelegate<T> | chamada de resposta | A chamada de resposta a ser invocada com o IRealmCollection<T> atualizado. |
KeyPathsCollection | keyPathsCollection | Um KeyPathsCollection opcional, que indica quais alterações nas propriedades devem gerar uma notificação. |
Devoluções
Tipo | Descrição |
---|---|
IDisposable | Um token de inscrição. Ele deve ser mantido ativo enquanto você quiser receber notificações de alteração. Para parar de receber notificações, ligue para Dispose(). |
Parâmetros de tipo
Nome | Descrição |
---|---|
t | Tipo dos elementos na lista. |
Veja também
| Editar esta página Ver fonteSubscribeForNotifications<T>(ISSet<T>, NotificationCallbackDelegate<T>, KeyPathsCollection?)
Um método de conveniência que converte ISet<T> para IRealmCollection<T> e assina notificações de alteração.
Declaração
public static IDisposable SubscribeForNotifications<T>(this ISet<T> set, NotificationCallbackDelegate<T> callback, KeyPathsCollection? keyPathsCollection = null)
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
ISet<T> | set | O ISet<T> para observar as alterações. |
NotificationCallbackDelegate<T> | chamada de resposta | A chamada de resposta a ser invocada com o IRealmCollection<T> atualizado. |
KeyPathsCollection | keyPathsCollection | Um KeyPathsCollection opcional, que indica quais alterações nas propriedades devem gerar uma notificação. |
Devoluções
Tipo | Descrição |
---|---|
IDisposable | Um token de inscrição. Ele deve ser mantido ativo enquanto você quiser receber notificações de alteração. Para parar de receber notificações, ligue para Dispose(). |
Parâmetros de tipo
Nome | Descrição |
---|---|
t | Tipo dos elementos no conjunto. |
Veja também
| Editar esta página Ver fonteSubscribeForNotifications<T>(IQueryable<T>, NotificationCallbackDelegate<T>, KeyPathsCollection?)
Um método de conveniência que converte IQueryable<T> para IRealmCollection<T> e se inscreve para receber notificações de alteração.
Declaração
public static IDisposable SubscribeForNotifications<T>(this IQueryable<T> results, NotificationCallbackDelegate<T> callback, KeyPathsCollection? keyPathsCollection = null) where T : IRealmObjectBase?
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
IQueryable<T> | Resultados | O IQueryable<T> para observar as alterações. |
NotificationCallbackDelegate<T> | chamada de resposta | A chamada de resposta a ser invocada com o IRealmCollection<T> atualizado. |
KeyPathsCollection | keyPathsCollection | Um KeyPathsCollection opcional, que indica quais alterações nas propriedades devem gerar uma notificação. |
Devoluções
Tipo | Descrição |
---|---|
IDisposable | Um token de inscrição. Ele deve ser mantido ativo enquanto você quiser receber notificações de alteração. Para parar de receber notificações, ligue para Dispose(). |
Parâmetros de tipo
Nome | Descrição |
---|---|
t | Tipo de RealmObject ou EmbeddedObject nos resultados. |