Interface IRealmCollection<T>
Collection iterável e classificável que é a base para todas as collection retornadas pelo Realm.
Membros herdados
namespace: Realms
Conjunto: Realm.exe
Sintaxe
public interface IRealmCollection<out T> : IReadOnlyList<T>, IReadOnlyCollection<T>, IEnumerable<T>, IEnumerable, INotifyCollectionChanged, INotifyPropertyChanged
Parâmetros de tipo
Nome | Descrição |
---|---|
t | Tipo do valor contido na coleção. |
Propriedades
| Editar esta página Ver fonteIsFrozen
Obtém um valor indicando se esta coleção está congelada. As coleções congeladas são imutáveis e podem ser acessadas de qualquer thread. Os objetos lidos de uma coleção congelada também serão congelados.
Declaração
bool IsFrozen { get; }
Valor da propriedade
Tipo | Descrição |
---|---|
bool |
|
IsValid
Obtém um valor que indica se essa collection ainda é válida para uso, ou seja, a Instância de Realm não foi fechada e, se ela representa um relacionamento para muitos, seu objeto pai não foi excluído.
Declaração
bool IsValid { get; }
Valor da propriedade
Tipo | Descrição |
---|---|
bool |
|
Esquema de objetos
Obtém o ObjectSchema, descrevendo as propriedades persistentes das instâncias IRealmObject, IEmbeddedObject ou IAsymmetricObject contidas na collection. Se a collection contiver valores primitivos, o ObjectSchema será null
.
Declaração
ObjectSchema? ObjectSchema { get; }
Valor da propriedade
Tipo | Descrição |
---|---|
Esquema de objetos | O esquema do objeto contidos na collection. |
Realm
Obtém a Instância de Realm à qual esta collection pertence.
Declaração
Realm Realm { get; }
Valor da propriedade
Tipo | Descrição |
---|---|
Realm | A Instância de Realm à qual esta collection pertence. |
Métodos
| Editar esta página Ver fonteContém(objeto?)
Determina se um elemento está na IRealmCollection<T>.
Declaração
bool Contains(object? item)
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
objeto | item | O objeto a localizar no IRealmCollection<T>. |
Devoluções
Tipo | Descrição |
---|---|
bool | verdadeiro se o item for encontrado na IRealmCollection<T>; caso contrário, falso. |
Congelar()
Cria um snapshot congelado desta coleção. A cópia congelada pode ser lida e query de qualquer thread.
Congelar uma coleção também cria um Realm congelado que tem seu próprio ciclo de vida, mas se o Realm ativo que gerou a coleção original estiver totalmente fechado (ou seja, todas as instâncias em todos os threads estiverem fechadas), o Realm congelado e a collection também serão fechadas. As coleções congeladas podem ser consultadas normalmente, mas tentar modificá-las de qualquer forma ou tentar registrar um ouvinte lançará um RealmFrozenException . Observação: manter um grande número de objetos congelados com diferentes versões vivos pode ter um impacto negativo no tamanho do arquivo do Realm. Para evitar tal situação, é possível definir MaxNumberOfAtiveVersions.Declaração
IRealmCollection<out T> Freeze()
Devoluções
Tipo | Descrição |
---|---|
IRealmCollection<T> | Uma cópia congelada desta collection. |
Veja também
IndexOf(objeto?)
Procura o objeto especificado e retorna o índice baseado em zero da primeira ocorrência em todo o IRealmCollection<T> .
Declaração
int IndexOf(object? item)
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
objeto | item | O objeto a localizar no IRealmCollection<T>. |
Devoluções
Tipo | Descrição |
---|---|
int | O índice baseado em zero da primeira ocorrência do item dentro de todo o IRealmCollection<T>, se encontrado; caso contrário, –1. |
SubscribeForNotifications(NotificationCallbackDelegate<T>, KeyPathsCollection?)
Registre uma chamada de resposta para ser invocada sempre que esse IRealmCollection<T>for alterado.
Declaração
IDisposable SubscribeForNotifications(NotificationCallbackDelegate<out T> callback, KeyPathsCollection? keyPathCollection = null)
Parâmetros
Tipo | Nome | Descrição |
---|---|---|
NotificationCallbackDelegate<T> | chamada de resposta | A chamada de resposta a ser invocada com o IRealmCollection<T> atualizado. |
KeyPathsCollection | keyPathCollection | Uma coleção opcional de caminhos principais 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(). |
Observações
A chamada de resposta será invocada de forma assíncrona com o IRealmCollection<T> inicial e, em seguida, chamada novamente após cada transação de escrita que altere qualquer um dos objeto da collection ou quais objeto estão na collection. O parâmetro changes
será null
na primeira vez que a chamada de resposta for invocada com os resultados iniciais. Para cada chamada posterior, ela conterá informações sobre quais linhas dos resultados foram adicionadas, removidas ou modificadas.
Quando a coleção contém objetos de Realm, é possível passar um KeyPathsCollection opcional , que indica quais alterações nas propriedades devem gerar uma notificação. Se nenhum KeyPathsCollection for passado, Full será usado, portanto, as alterações em todas as propriedades de nível superior e 4 níveis aninhados gerarão uma notificação. Consulte KeyPathsCollection para obter mais informações sobre como construí-la.
Se uma transação de escrita não modificou nenhum objeto nessa IRealmCollection<T>, a chamada de resposta não será invocada.
No momento em que o bloco é chamado, o objeto IRealmCollection<T> será totalmente avaliado e atualizado, e desde que você não execute uma transação de escrita no mesmo thread ou chame explicitamente Refresh(), acessando-o nunca realizará trabalhos de bloqueio.
As notificações são entregues por meio do loop de eventos padrão e, portanto, não podem ser entregues enquanto o loop de eventos estiver bloqueado por outra atividade. Quando as notificações não podem ser entregues instantaneamente, várias notificações podem ser agrupadas em uma única notificação. Isso pode incluir a notificação com a collection inicial.