Xamarin Realm dotnet:从RealmResults按索引获取元素

Xamarin Realm dotnet:从RealmResults按索引获取元素,xamarin,realm,realm-net,Xamarin,Realm,Realm Net,我正在使用Xamarin和Realm作为数据库实现android RecycleView。RecycleView要求按索引访问数据源。有没有办法从RealmResults中按索引检索元素?我发现,在java领域中,只需调用realmResults.get(index)方法就可以了。但显然,域的dotnet实现并没有这样的方法 此外,根据Realm文档: 对象不会被复制-您将获得匹配对象的引用列表 对象,然后直接使用匹配的原始对象 你的问题 那么,对realmresults调用.ToList()并

我正在使用Xamarin和Realm作为数据库实现android RecycleView。RecycleView要求按索引访问数据源。有没有办法从RealmResults中按索引检索元素?我发现,在java领域中,只需调用realmResults.get(index)方法就可以了。但显然,域的dotnet实现并没有这样的方法

此外,根据Realm文档:

对象不会被复制-您将获得匹配对象的引用列表 对象,然后直接使用匹配的原始对象 你的问题

那么,对realmresults调用.ToList()并将此集合用作数据源是否足够理想呢?

说:

要提取名为John或Peter的所有用户的列表,请编写:

var johnsAndPeters = realm.All<Person>().Where(p => 
  p.FirstName == "John" || 
  p.FirstName == "Peter"); 
var peopleList = johnsAndPeters.ToList();
var johnsAndPeters=realm.All()。其中(p=>
p、 名字==“约翰”|
p、 名字==“彼得”);
var peopleList=johnsAndPeters.ToList();
在本例中,ToList调用触发直接映射到领域核心的查询

对象不会被复制-您将获得一个匹配对象的引用列表,并直接使用与查询匹配的原始对象


本质上是的,通过调用
ToList()
您获得了RealmResults在RealmJava中本质上是
RealmResults

我们添加了一个来实现这个公开的as。

嗯,不!ToList()将立即迭代RealmResults并将所有对象拉入内存。它不会复制对象,但会立即实例化所有对象。RealMList只会在您依次访问每个列表时进行实例化。对不起,ToList方法可能对很多大小的列表都足够有效-我只是对事实上的错误反应有点快。就目前而言,这可能是一个足够好的解决办法。