接口 IRealmCollection<T>
可迭代、可排序的collection,是 Realm 返回的所有collection的基础。
继承成员
命名空间: Realms
程序集:Realm.dll
语法
public interface IRealmCollection<out T> : IReadOnlyList<T>, IReadOnlyCollection<T>, IEnumerable<T>, IEnumerable, INotifyCollectionChanged, INotifyPropertyChanged
类型参数
名称 | 说明 |
---|---|
t | 集合中包含的值的类型。 |
属性
| 编辑本页 查看源代码IsFrozen
获取一个值,该值指示此collection是否已冻结。冻结collection是不可变的,可以从任何线程访问。从冻结collection中读取的对象也将被冻结。
声明
bool IsFrozen { get; }
属性值
类型 | 说明 |
---|---|
bool |
|
IsValid
获取一个值,该值指示此collection是否仍可有效使用,即Realm instance尚未关闭,并且如果它表示对多关系,则其对象尚未被删除。
声明
bool IsValid { get; }
属性值
类型 | 说明 |
---|---|
bool |
|
对象模式
获取Objectnull
。
声明
ObjectSchema? ObjectSchema { get; }
属性值
类型 | 说明 |
---|---|
对象模式 | collection中包含的对象的模式。 |
Realm
获取此collection所属的Realm 实例。
声明
Realm Realm { get; }
属性值
方法
| 编辑本页 查看源代码包含(对象?)
确定元素是否位于IRealm
声明
bool Contains(object? item)
参数
类型 | 名称 | 说明 |
---|---|---|
对象 | 列项 | 要在IRealm |
返回:
类型 | 说明 |
---|---|
bool | 如果在IRealm |
Freeze()
创建此collection的冻结快照。可以从任何线程读取和查询冻结的副本。
冻结collection还会创建一个具有自己生命周期的冻结Realm,但如果生成原始collection的活动Realm完全关闭(即 所有线程上的所有实例均已关闭),冻结的 Realm 和集合也将关闭。 可以正常查询冻结的collection,但尝试以任何方式对其进行更改或尝试注册侦听器都会抛出Realm声明
IRealmCollection<out T> Freeze()
返回:
类型 | 说明 |
---|---|
IRealm |
此collection的冻结副本。 |
另请参阅
IndexOf(object?)
搜索指定对象,并返回整个IRealm
声明
int IndexOf(object? item)
参数
类型 | 名称 | 说明 |
---|---|---|
对象 | 列项 | 要在IRealm |
返回:
类型 | 说明 |
---|---|
int | 如果找到,则为整个IRealm |
SubscribeForNotifications(NotificationCallbackDelegate<T>, KeyPathsCollection?)
注册一个回调,以便每次此IRealm
声明
IDisposable SubscribeForNotifications(NotificationCallbackDelegate<out T> callback, KeyPathsCollection? keyPathCollection = null)
参数
类型 | 名称 | 说明 |
---|---|---|
notification |
callback | 使用更新后的IRealm |
Key |
keyPathCollection | 可选的关键路径集合,指示哪些属性更改应引发通知。 |
返回:
类型 | 说明 |
---|---|
IDisposable | 订阅令牌。 只要您想接收变更通知,它就必须保持活动状态。 要停止接收通知,请调用Dispose() 。 |
备注
回调将与初始IRealmchanges
参数将为null
。 对于此后的每次调用,它将包含有关在结果中添加、删除或修改了哪些行的信息。
当集合包含 Realm域时,可以传递一个可选的Key
如果写事务(write transaction)未修改此IRealm
调用该区块时, IRrealm
通知是通过标准事件循环传递的,因此当事件循环被其他活动阻止时无法传递。 当无法立即传递通知时,可以将多个通知合并为一个通知。 这可以包括初始collection的通知。