Alterado na versão 12.2.0: RealmValue pode conter listas e dicionários de dados mistos.
O tipo de dados RealmValue é um tipo de dados misto e pode representar qualquer outro tipo de dados Realm válido, exceto um objeto incorporado ou um conjunto. Você pode criar collections (listas, conjuntos e dicionários) do tipo RealmValue:
// CS0029 - Cannot implicitly convert type: RealmValue myList = new List<Inventory>(); // These are valid uses of RealmValue: var rvList = new List<RealmValue>(); var rvDict = new Dictionary<string, RealmValue>();
Observação
Você não pode criar um RealmValue anulável. No entanto, se quiser que uma propriedade RealmValue contenha um valor nulo, você pode usar a propriedade especial RealmValue.Null .
Criar uma propriedade RealmValue
O código a seguir demonstra a criação de uma propriedade RealmValue em uma classe que herda de IRealmObject e, em seguida, a definição e a obtenção do valor dessa propriedade:
public partial class MyRealmValueObject : IRealmObject { [] [] public Guid Id { get; set; } public RealmValue MyValue { get; set; } // A nullable RealmValue property is *not supported* // public RealmValue? NullableRealmValueNotAllowed { get; set; } private void TestRealmValue() { var obj = new MyRealmValueObject(); // set the value to null: obj.MyValue = RealmValue.Null; // or an int... obj.MyValue = 1; // or a string... obj.MyValue = "abc"; // Use RealmValueType to check the type: if (obj.MyValue.Type == RealmValueType.String) { var myString = obj.MyValue.AsString(); } }
Coleções como mistas
Na versão 12.2.0 e posterior, um tipo de dados RealmValue pode conter collections (uma lista ou dicionário, mas não um conjunto) de elementos RealmValue . Você pode usar collections mistas para modelar dados não estruturados ou variáveis. Para mais informações, consulte Definir Dados Não Estruturados.
Você pode aninhar collections mistas em até 100 níveis.
Você pode consultar propriedades de collections mistas e registrar um ouvinte para alterações, como faria com uma collection normal.
Você pode encontrar e atualizar elementos individuais de collections mistas
Você não pode armazenar conjuntos ou objetos incorporados em coleções mistas.
Para utilizar coleções mistas, defina a propriedade de tipo RealmValue no seu modelo de dados. Em seguida, defina a propriedade como uma lista ou dicionário.