Overview
Realmリストは IList<T> を実装し、 Realmタイプ の 0 個以上のインスタンスを含みます。 C#List と同様に、 Realmコレクションは同種(コレクション内のすべてのオブジェクトは同じタイプ)です。
リスト
Realmオブジェクトには、サポートされている任意のデータ型のリストを含めることができます。IList<T> タイプの getter 専用プロパティを定義してコレクションを作成します。ここでは、T は任意のデータ型(他のコレクションを除く)にできます。邦土オブジェクトのリストは、含まれているクラスとリスト内の型である、2 つのRealmタイプ間の対多の関係を表します。
リストは可変です。書込みトランザクション内で、リストに要素を追加および削除できます。
リストと null 可能性
データベースからオブジェクトを削除すると、そのオブジェクトが存在していたすべてのリストからそのオブジェクトが削除されます。 したがって、オブジェクトのリストに削除されたオブジェクトが含まれることはありません。 However, lists of primitive types can contain null values. リストで null 値を許可しない場合は、リスト宣言で null 以外の型を使用します(たとえば、IList<double> ではなくIList<double?> を使用します)。古いスキーマ型の定義(クラスはRealmObject基本クラスから派生している)を使用している場合、または null 可能性が有効になっていない場合は、 stringや null 可能性の高い参照型が含まれている場合は、 [Required]属性を使用しますbyte[] 。
重要
同期はサポートされていません
ローカルのみの Realm は null 可能な(任意)値のコレクションをサポートしていますが、 Syncはサポートしていません。
詳細については、「必須プロパティと任意プロパティ 」を参照してください。
変更の監視
INotifyCollectionchanged.Collectionchangedリストのイベントを使用してリストの変更を監視し、INotifyPropertychanged.Propertychangedイベントを使用してリスト内の特定のプロパティに対する変更を監視できます。
次のコード例では、 StringListという名前のIList<string>プロパティを持つクラスがあります。 CollectionChangedイベントとPropertyChangedイベントの両方のイベント ハンドラーを設定します。
var list = container.StringList.AsRealmCollection(); list.CollectionChanged += (sender, e) => { Console.WriteLine($"List {sender} changed: {e.Action}"); }; list.PropertyChanged += (sender, e) => { Console.WriteLine($"Property changed on {sender}: {e.PropertyName}"); };