2016-07-26 4 views
2

XamarinとRealmをデータベースとして使用して、Android RecycleViewを実装しています。 RecycleViewでは、索引によるデータソースへのアクセスが必要です。 RealmResultsからインデックスで要素を取得する方法はありますか? RealmResults.get(index)メソッドを呼び出すだけでrealm javaで可能であることがわかりました。しかし、明らかにRealmのdotnet実現にはそのような方法はありません。また、レルムのマニュアルに従ってレルム・ドットネット:RealmResultsのインデックスで要素を取得

オブジェクトはコピーされません - あなたは、一致 オブジェクトへの参照のリストを取得し、あなたは あなたのクエリに一致する元のオブジェクトを直接操作。

したがって、realmresultsの.ToList()を呼び出してこのコレクションをデータソースとして使用するだけで十分ですか?

答えて

1

Realm-Xamarin docsは言う:

あなたが書くでしょうジョンやピーターという名前のすべてのユーザーのリストを抽出するには:

var johnsAndPeters = realm.All<Person>().Where(p => 
    p.FirstName == "John" || 
    p.FirstName == "Peter"); 
var peopleList = johnsAndPeters.ToList(); 

ToListメソッドの呼び出しは、まっすぐにマップするクエリオフこの例では、火災Realmコアに転送します。

オブジェクトはコピーされません。一致するオブジェクトへの参照リストを取得し、クエリに一致する元のオブジェクトで直接作業します。

は基本的に、はい、ToList()を呼び出すことによって、あなたは、本質的にRealmResults<T>レルム-Javaであるものを得ました。

+0

Umm NO! ToList()はRealmResultsを即座に繰り返し、すべてのオブジェクトをメモリにプルします。オブジェクトをコピーするのではなく、すぐにすべてをインスタンス化します。 RealmLiistは、順番にアクセスするごとにインスタンス化します。 –

+0

申し訳ありませんが、ToListアプローチはおそらく多くのサイズのリストに対して十分に機能します。私は事実上の不正確さに少しだけ迅速に反応しました。今は十分な回避策かもしれません。 –

1

issueを追加しました。これはElementAtとして公開されています。

関連する問題