클래스 CollectionExtensions
collection에 알림 관련 기능을 노출하는 확장 메서드 세트입니다.
네임스페이스: Realms
어셈블리: Realm.exe
구문
public static class CollectionExtensions
방법
| 이 페이지 편집 소스 보기asRealmCollection<T>(IDictionary<string, T>)
IDictionary<TKey, TValue> 를 INotifyCollectionChanged 를 구현하는<T> IRealmCollection 으로 캐스팅하는 편의 메서드입니다.
선언
public static IRealmCollection<KeyValuePair<string, T>> AsRealmCollection<T>(this IDictionary<string, T> dictionary)
매개변수
유형 | 이름 | 설명 |
---|---|---|
IDictionary<string, T> | 사전 | 변경 사항을 관찰할 IDictionary<TKey, TValue> 입니다. |
반환
유형 | 설명 |
---|---|
IRealmCollection<KeyValuePpair<string, T>> | collection, INotifyCollectionChanged 를 구현하는. |
유형 매개변수
이름 | 설명 |
---|---|
t | 사전에 있는 요소의 유형입니다. |
다음도 참조하세요.
| 이 페이지 편집 소스 보기asRealmCollection<T>(IList<T>)
IList<T> 를 INotifyCollectionChanged 를 구현하는<T> IRealmCollection<T >으로 캐스팅하는 편의 메서드입니다.
선언
public static IRealmCollection<T> AsRealmCollection<T>(this IList<T> list)
매개변수
유형 | 이름 | 설명 |
---|---|---|
IList<T> | 목록 | 변경 사항을 관찰할 IList<T> 입니다. |
반환
유형 | 설명 |
---|---|
IRealmCollection<T> | collection, INotifyCollectionChanged 를 구현하는. |
유형 매개변수
이름 | 설명 |
---|---|
t | 목록에 있는 요소의 유형입니다. |
다음도 참조하세요.
| 이 페이지 편집 소스 보기asRealmCollection<T>(ISet<T>)
ISet<T> 를 <T> INotifyCollectionChanged 를 구현하는 IRealmCollection< T> 으로 캐스팅하는 편의 메서드입니다.
선언
public static IRealmCollection<T> AsRealmCollection<T>(this ISet<T> set)
매개변수
유형 | 이름 | 설명 |
---|---|---|
ISet<T> | 세트 | 변경 사항을 관찰할 ISet<T> 입니다. |
반환
유형 | 설명 |
---|---|
IRealmCollection<T> | collection, INotifyCollectionChanged 를 구현하는. |
유형 매개변수
이름 | 설명 |
---|---|
t | 세트에 있는 요소의 유형입니다. |
다음도 참조하세요.
| 이 페이지 편집 소스 보기asRealmCollection<T>(IQueryable<T>)
IQueryable<T> 를 INotifyCollectionChanged 를 구현하는<T> IRealmCollection<T > 로 캐스팅하는 편의 메서드입니다.
선언
public static IRealmCollection<T> AsRealmCollection<T>(this IQueryable<T> query) where T : IRealmObjectBase?
매개변수
유형 | 이름 | 설명 |
---|---|---|
IQueryable<T> | 쿼리 | 변경 사항을 관찰할 IQueryable<T> 입니다. |
반환
유형 | 설명 |
---|---|
IRealmCollection<T> | collection, INotifyCollectionChanged 를 구현하는. |
유형 매개변수
이름 | 설명 |
---|---|
t | 결과에 있는 RealmObject 또는 EmbeddedObject 의 유형입니다. |
다음도 참조하세요.
| 이 페이지 편집 소스 보기asRealmQueryable<T>(IDictionary<string, T?>)
Realm 지원 IDictionary<TKey, TValue> 를 사전 값의 Realm 지원 IQueryable<T> 로 변환합니다.
선언
public static IQueryable<T> AsRealmQueryable<T>(this IDictionary<string, T?> dictionary) where T : IRealmObjectBase
매개변수
유형 | 이름 | 설명 |
---|---|---|
IDictionary<string, T> | 사전 | tomany 관계 속성에서 가져온 객체 사전입니다. |
반환
유형 | 설명 |
---|---|
IQueryable<T> | 딕셔너리에 포함된 값을 나타내는 쿼리 가능한 collection입니다. |
유형 매개변수
이름 | 설명 |
---|---|
t | 딕셔너리에 포함된 값의 유형입니다. |
비고
이 메서드는 KeyValuePair<TKey, TValue> collection이 아닌 값 collection만 반환한다는 점에서 asQueryable(IEnumerable) 과 다르게 작동하며, 실제로 사전의 값을 나타내는 기본 Realm query를 생성합니다. 즉, 모든 LINQ 메서드가 데이터베이스에서 실행되며 LINQ 필터를 적용하거나 순서를 지정한 후에도 알림을 구독할 수 있습니다.
예시
var query = owner.DictOfDogs.AsRealmQueryable()
.Where(d => d.Age > 3)
.OrderBy(d => d.Name);
var token = query.SubscribeForNotifications((sender, changes, error) =>
{
// You'll be notified only when dogs older than 3 have been added/removed/updated
// and the sender collection will be ordered by Name
});
예외
유형 | 조건 |
---|---|
ArgumentException | 사전이 Realm managed 되지 않으면 발생합니다. |
asRealmQueryable<T>(IList<T>)
Realm 지원 IList<T> 를 Realm 지원 IQueryable<T> 로 변환합니다.
선언
public static IQueryable<T> AsRealmQueryable<T>(this IList<T> list) where T : IRealmObjectBase
매개변수
유형 | 이름 | 설명 |
---|---|---|
IList<T> | 목록 | to-many 관계 속성에서 가져온 객체 목록입니다. |
반환
유형 | 설명 |
---|---|
IQueryable<T> | 목록에 포함된 객체를 나타내는 쿼리 가능 컬렉션입니다. |
유형 매개변수
이름 | 설명 |
---|---|
t | 목록에 포함된 객체의 유형입니다. |
비고
이 메서드는 실제로 목록을 나타내는 기본 Realm 쿼리를 생성한다는 점에서 asQueryable(IEnumerable) 과 다르게 작동합니다. 즉, 모든 LINQ 메서드가 데이터베이스에서 실행되며 LINQ 필터를 적용하거나 순서를 지정한 후에도 알림을 구독할 수 있습니다.
예시
var dogs = owner.Dogs;
var query = dogs.AsRealmQueryable()
.Where(d => d.Age > 3)
.OrderBy(d => d.Name);
var token = query.SubscribeForNotifications((sender, changes, error) =>
{
// You'll be notified only when dogs older than 3 have been added/removed/updated
// and the sender collection will be ordered by Name
});
예외
유형 | 조건 |
---|---|
ArgumentException | 목록이 Realm managed 되지 않으면 발생합니다. |
asRealmQueryable<T>(ISet<T>)
Realm 지원 ISet<T> 를 Realm 지원 IQueryable<T> 로 변환합니다.
선언
public static IQueryable<T> AsRealmQueryable<T>(this ISet<T> set) where T : IRealmObjectBase
매개변수
유형 | 이름 | 설명 |
---|---|---|
ISet<T> | 세트 | tomany 관계 속성에서 가져온 객체 세트입니다. |
반환
유형 | 설명 |
---|---|
IQueryable<T> | 세트에 포함된 객체를 나타내는 쿼리 가능 컬렉션입니다. |
유형 매개변수
이름 | 설명 |
---|---|
t | 세트에 포함된 객체의 유형입니다. |
비고
이 메서드는 실제로 세트를 나타내는 기본 Realm 쿼리를 생성한다는 점에서 AsQueryable(IEnumerable) 과 다르게 작동합니다. 즉, 모든 LINQ 메서드가 데이터베이스에서 실행되며 LINQ 필터를 적용하거나 순서를 지정한 후에도 알림을 구독할 수 있습니다.
예시
var dogs = owner.Dogs;
var query = dogs.AsRealmQueryable()
.Where(d => d.Age > 3)
.OrderBy(d => d.Name);
var token = query.SubscribeForNotifications((sender, changes, error) =>
{
// You'll be notified only when dogs older than 3 have been added/removed/updated
// and the sender collection will be ordered by Name
});
예외
유형 | 조건 |
---|---|
ArgumentException | 목록이 Realm managed 되지 않으면 발생합니다. |
Filter<T>(IDictionary<string, T?>, string,params QueryArgument[])
딕셔너리 값에 NSPredicate 기반 필터를 적용합니다. 현재 LINQ 제공자에서 지원되지 않고 필터링 외에도 SORT 및 DISTINCT 절을 지원하는 보다 복잡한 쿼리를 만드는 데 사용할 수 있습니다.
선언
public static IQueryable<T> Filter<T>(this IDictionary<string, T?> dictionary, string predicate, params QueryArgument[] arguments) where T : IRealmObjectBase
매개변수
유형 | 이름 | 설명 |
---|---|---|
IDictionary<string, T> | 사전 | Realm 사전. |
문자열 | 술어 | 적용할 술어입니다. |
QueryArgument[] | arguments | 술어에서 대체에 사용되는 값입니다. 모든 기본 유형은 암시적으로 RealmValue로 변환되므로 허용된다는 점에 유의하세요. |
반환
유형 | 설명 |
---|---|
IQueryable<T> | 조건자와 일치하는 딕셔너리 값의 쿼리 가능 관찰 가능 collection입니다. |
유형 매개변수
이름 | 설명 |
---|---|
t | 필터링할 딕셔너리 값의 유형입니다. |
비고
추가 필터를 적용하지 않으려면 조건자를 적용한 후 AsRealmCollection<T>(IQueryable<T>) 을 사용하는 것이 좋습니다.
예시
joe.DictOfDogs.Filter("Name BEGINSWITH $0", "R");
다음도 참조하세요.
| 이 페이지 편집 소스 보기Filter<T>(IList<T>, string,params QueryArgument[])
collection에 NSPredicate 기반 필터를 적용합니다. 현재 LINQ 제공자에서 지원되지 않고 필터링 외에도 SORT 및 DISTINCT 절을 지원하는 보다 복잡한 쿼리를 만드는 데 사용할 수 있습니다.
선언
public static IQueryable<T> Filter<T>(this IList<T> list, string predicate, params QueryArgument[] arguments) where T : IRealmObjectBase
매개변수
유형 | 이름 | 설명 |
---|---|---|
IList<T> | 목록 | Realm 목록. |
문자열 | 술어 | 적용할 술어입니다. |
QueryArgument[] | arguments | 술어에서 대체에 사용되는 값입니다. 모든 기본 유형은 암시적으로 RealmValue로 변환되므로 허용된다는 점에 유의하세요. |
반환
유형 | 설명 |
---|---|
IQueryable<T> | 조건자와 일치하는 쿼리 가능 관찰 가능 collection입니다. |
유형 매개변수
이름 | 설명 |
---|---|
t | 필터링할 객체의 유형입니다. |
비고
추가 필터를 적용하지 않으려면 조건자를 적용한 후 AsRealmCollection<T>(IQueryable<T>) 을 사용하는 것이 좋습니다.
예시
var joe = realm.All<Person>().Single(p => p.Name == "Joe");
joe.dogs.Filter("Name BEGINSWITH $0", "R");
다음도 참조하세요.
| 이 페이지 편집 소스 보기Filter<T>(ISet<T>, 문자열, 매개 변수 QueryArgument[])
collection에 NSPredicate 기반 필터를 적용합니다. 현재 LINQ 제공자에서 지원되지 않고 필터링 외에도 SORT 및 DISTINCT 절을 지원하는 보다 복잡한 쿼리를 만드는 데 사용할 수 있습니다.
선언
public static IQueryable<T> Filter<T>(this ISet<T> set, string predicate, params QueryArgument[] arguments) where T : IRealmObjectBase
매개변수
유형 | 이름 | 설명 |
---|---|---|
ISet<T> | 세트 | Realm 세트. |
문자열 | 술어 | 적용할 술어입니다. |
QueryArgument[] | arguments | 술어에서 대체에 사용되는 값입니다. 모든 기본 유형은 암시적으로 RealmValue로 변환되므로 허용된다는 점에 유의하세요. |
반환
유형 | 설명 |
---|---|
IQueryable<T> | 조건자와 일치하는 쿼리 가능 관찰 가능 collection입니다. |
유형 매개변수
이름 | 설명 |
---|---|
t | 필터링할 객체의 유형입니다. |
비고
추가 필터를 적용하지 않으려면 조건자를 적용한 후 AsRealmCollection<T>(IQueryable<T>) 을 사용하는 것이 좋습니다.
예시
var joe = realm.All<Person>().Single(p => p.Name == "Joe");
joe.dogs.Filter("Name BEGINSWITH $0", "R");
다음도 참조하세요.
| 이 페이지 편집 소스 보기Filter<T>(IQueryable<T>, 문자열, 매개 변수 QueryArgument[])
collection에 NSPredicate 기반 필터를 적용합니다. 현재 LINQ 제공자에서 지원되지 않고 필터링 외에도 SORT 및 DISTINCT 절을 지원하는 보다 복잡한 쿼리를 만드는 데 사용할 수 있습니다.
선언
public static IQueryable<T> Filter<T>(this IQueryable<T> query, string predicate, params QueryArgument[] arguments)
매개변수
유형 | 이름 | 설명 |
---|---|---|
IQueryable<T> | 쿼리 | All<T>() 을 호출하여 얻은 쿼리 가능 collection입니다. |
문자열 | 술어 | 적용할 술어입니다. |
QueryArgument[] | arguments | 술어에서 대체에 사용되는 값입니다. 모든 기본 유형은 암시적으로 RealmValue로 변환되므로 허용된다는 점에 유의하세요. |
반환
유형 | 설명 |
---|---|
IQueryable<T> | 조건자와 일치하는 쿼리 가능 관찰 가능 collection입니다. |
유형 매개변수
이름 | 설명 |
---|---|
t | 필터링할 객체의 유형입니다. |
비고
추가 필터를 적용하지 않으려면 조건자를 적용한 후 AsRealmCollection<T>(IQueryable<T>) 을 사용하는 것이 좋습니다.
예시
var results1 = realm.All<Foo>("Bar.IntValue > 0");
var results2 = realm.All<Foo>("Bar.IntValue > 0 SORT(Bar.IntValue ASC Bar.StringValue DESC)");
var results3 = realm.All<Foo>("Bar.IntValue > 0 SORT(Bar.IntValue ASC Bar.StringValue DESC) DISTINCT(Bar.IntValue)");
var results4 = realm.All<Foo>("Bar.IntValue > $0 || (Bar.String == $1 && Bar.Bool == $2)", 5, "small", true);
다음도 참조하세요.
| 이 페이지 편집 소스 보기이동<T>(IList<T>, int, int)
지정된 항목을 목록 내의 새 위치로 이동합니다.
선언
public static void Move<T>(this IList<T> list, int from, int to)
매개변수
유형 | 이름 | 설명 |
---|---|---|
IList<T> | 목록 | 이동이 발생해야 하는 목록입니다. |
int | FROM | 이동할 항목의 인덱스입니다. |
int | to | 항목이 이동될 새 위치입니다. |
유형 매개변수
이름 | 설명 |
---|---|
t | 목록에 있는 객체의 유형입니다. |
비고
이 확장 메서드는 RemoveAt(int) 를 호출한 다음 Insert(int, T) 를 호출하여 독립형 목록에서도 작동합니다.
예외
유형 | 조건 |
---|---|
ArgumentOutOfRangeException | 인덱스가 0보다 작거나 개수 - 1보다 크면 발생합니다. |
이동<T>(IList<T>, T, int)
지정된 항목을 목록 내의 새 위치로 이동합니다.
선언
public static void Move<T>(this IList<T> list, T item, int index)
매개변수
유형 | 이름 | 설명 |
---|---|---|
IList<T> | 목록 | 이동이 발생해야 하는 목록입니다. |
t | item | 이동할 항목입니다. |
int | index | 항목이 이동될 새 위치입니다. |
유형 매개변수
이름 | 설명 |
---|---|
t | 목록에 있는 객체의 유형입니다. |
비고
이 확장 메서드는 Remove(T) 를 호출한 다음 Insert(int, T) 를 호출하여 독립형 목록에서도 작동합니다.
예외
유형 | 조건 |
---|---|
ArgumentOutOfRangeException | 인덱스가 0보다 작거나 개수 - 1보다 크면 발생합니다. |
SubscribeAsync<T>(IQueryable<T>, SubscriptionOptions?, WaitForSyncMode, 취소 토큰?)
Active Flexible Sync 구독 세트에 쿼리를 추가합니다. 쿼리는 동일한 유형에 대한 기존 쿼리와 OR 문을 통해 조인됩니다.
선언
public static Task<IQueryable<T>> SubscribeAsync<T>(this IQueryable<T> query, SubscriptionOptions? options = null, WaitForSyncMode waitForSync = WaitForSyncMode.FirstTime, CancellationToken? cancellationToken = null) where T : IRealmObject
매개변수
유형 | 이름 | 설명 |
---|---|---|
IQueryable<T> | 쿼리 | 서버에서 일치시킬 쿼리입니다. |
SubscriptionOptions | 옵션 | 수행될 삽입의 이름 및/또는 유형을 제어하는 구독 옵션입니다. |
동기화 모드 대기 | waitForSync | 서버가 구독과 일치하는 객체를 보낼 때까지 이 메서드가 비동기적으로 대기해야 하는 시기를 제어하는 매개변수입니다. |
취소 토큰? | 취소 토큰 | 서버와의 동기화 대기를 취소하는 선택적 취소 토큰입니다. 작업을 취소하면 실제 구독이 아니라 대기 자체만 취소되므로 작업이 취소되더라도 구독이 추가됩니다. 구독을 제거하려면 Remove<T>(IQueryable<T>, bool) 을 사용할 수 있습니다. |
반환
유형 | 설명 |
---|---|
작업<IQueryable<T>> | 구독 세트에 추가된 후의 원래 쿼리입니다. |
유형 매개변수
이름 | 설명 |
---|---|
t | 쿼리 결과의 객체 유형입니다. |
비고
이미 존재하는 쿼리를 추가하는 것은 불가능합니다.
이 메서드는 Add<T>(IQueryable<T>, SubscriptionOptions?) 을 호출한 다음 WaitForSynchronizationAsync(CancelationToken?) 을 호출하는 것과 거의 동일합니다.
다음도 참조하세요.
| 이 페이지 편집 소스 보기SubSubscribeForKeyNotifications<T>(IDictionary<string, T>,DictionaryNotificationCallbackDelegate<T>)
IDictionary<TKey, TValue> 를 IRealmCollection<T> 으로 캐스팅하고 키 변경 알림을 구독하는 편의 메서드입니다.
선언
public static IDisposable SubscribeForKeyNotifications<T>(this IDictionary<string, T> dictionary, DictionaryNotificationCallbackDelegate<T> callback)
매개변수
유형 | 이름 | 설명 |
---|---|---|
IDictionary<string, T> | 사전 | 변경 사항을 관찰할 IDictionary<TKey, TValue> 입니다. |
사전알림 콜백Delegate<T> | 콜백 | 업데이트된 IRealmCollection<T> 을 사용하여 호출할 콜백입니다. |
반환
유형 | 설명 |
---|---|
일회용 | 구독 토큰입니다. 변경 알림을 받으려면 오랫동안 활성 상태로 유지되어야 합니다. 알림 수신을 중지하려면 Dispose() 를 호출합니다. |
유형 매개변수
이름 | 설명 |
---|---|
t | 사전에 있는 요소의 유형입니다. |
다음도 참조하세요.
| 이 페이지 편집 소스 보기SubscribeForNotifications<T>(IDictionary<string, T>,NotificationCallbackDelegate<KeyValuePair<string, T>>, KeyPathsCollection?)
IDictionary<TKey, TValue> 를 IRealmCollection<T> 로 캐스팅하고 변경 알림 을 구독하는 편의 메서드입니다.
선언
public static IDisposable SubscribeForNotifications<T>(this IDictionary<string, T> dictionary, NotificationCallbackDelegate<KeyValuePair<string, T>> callback, KeyPathsCollection? keyPathsCollection = null)
매개변수
유형 | 이름 | 설명 |
---|---|---|
IDictionary<string, T> | 사전 | 변경 사항을 관찰할 IDictionary<TKey, TValue> 입니다. |
NotificationCallbackDelegate<KeyValuePair<string, T>> | 콜백 | 업데이트된 IRealmCollection<T> 을 사용하여 호출할 콜백입니다. |
KeyPathsCollection | keyPathsCollection | 알림을 발생시켜야 하는 속성 변경 사항을 나타내는 선택적 KeyPathsCollection 입니다. |
반환
유형 | 설명 |
---|---|
일회용 | 구독 토큰입니다. 변경 알림을 받으려면 오랫동안 활성 상태로 유지되어야 합니다. 알림 수신을 중지하려면 Dispose() 를 호출합니다. |
유형 매개변수
이름 | 설명 |
---|---|
t | 사전에 있는 요소의 유형입니다. |
다음도 참조하세요.
| 이 페이지 편집 소스 보기SubscribeForNotifications<T>(IList<T>,NotificationCallbackDelegate<T>, KeyPathsCollection?)
선언
public static IDisposable SubscribeForNotifications<T>(this IList<T> list, NotificationCallbackDelegate<T> callback, KeyPathsCollection? keyPathsCollection = null)
매개변수
유형 | 이름 | 설명 |
---|---|---|
IList<T> | 목록 | 변경 사항을 관찰할 IList<T> 입니다. |
NotificationCallbackDelegate<T> | 콜백 | 업데이트된 IRealmCollection<T> 을 사용하여 호출할 콜백입니다. |
KeyPathsCollection | keyPathsCollection | 알림을 발생시켜야 하는 속성 변경 사항을 나타내는 선택적 KeyPathsCollection 입니다. |
반환
유형 | 설명 |
---|---|
일회용 | 구독 토큰입니다. 변경 알림을 받으려면 오랫동안 활성 상태로 유지되어야 합니다. 알림 수신을 중지하려면 Dispose() 를 호출합니다. |
유형 매개변수
이름 | 설명 |
---|---|
t | 목록에 있는 요소의 유형입니다. |
다음도 참조하세요.
| 이 페이지 편집 소스 보기SubscribeForNotifications<T>(ISet<T>,NotificationCallbackDelegate<T>, KeyPathsCollection?)
선언
public static IDisposable SubscribeForNotifications<T>(this ISet<T> set, NotificationCallbackDelegate<T> callback, KeyPathsCollection? keyPathsCollection = null)
매개변수
유형 | 이름 | 설명 |
---|---|---|
ISet<T> | 세트 | 변경 사항을 관찰할 ISet<T> 입니다. |
NotificationCallbackDelegate<T> | 콜백 | 업데이트된 IRealmCollection<T> 을 사용하여 호출할 콜백입니다. |
KeyPathsCollection | keyPathsCollection | 알림을 발생시켜야 하는 속성 변경 사항을 나타내는 선택적 KeyPathsCollection 입니다. |
반환
유형 | 설명 |
---|---|
일회용 | 구독 토큰입니다. 변경 알림을 받으려면 오랫동안 활성 상태로 유지되어야 합니다. 알림 수신을 중지하려면 Dispose() 를 호출합니다. |
유형 매개변수
이름 | 설명 |
---|---|
t | 세트에 있는 요소의 유형입니다. |
다음도 참조하세요.
| 이 페이지 편집 소스 보기SubscribeForNotifications<T>(IQueryable<T>,NotificationCallbackDelegate<T>, KeyPathsCollection?)
선언
public static IDisposable SubscribeForNotifications<T>(this IQueryable<T> results, NotificationCallbackDelegate<T> callback, KeyPathsCollection? keyPathsCollection = null) where T : IRealmObjectBase?
매개변수
유형 | 이름 | 설명 |
---|---|---|
IQueryable<T> | 결과 | 변경 사항을 관찰할 IQueryable<T> 입니다. |
NotificationCallbackDelegate<T> | 콜백 | 업데이트된 IRealmCollection<T> 을 사용하여 호출할 콜백입니다. |
KeyPathsCollection | keyPathsCollection | 알림을 발생시켜야 하는 속성 변경 사항을 나타내는 선택적 KeyPathsCollection 입니다. |
반환
유형 | 설명 |
---|---|
일회용 | 구독 토큰입니다. 변경 알림을 받으려면 오랫동안 활성 상태로 유지되어야 합니다. 알림 수신을 중지하려면 Dispose() 를 호출합니다. |
유형 매개변수
이름 | 설명 |
---|---|
t | 결과에 있는 RealmObject 또는 EmbeddedObject 의 유형입니다. |