Я использую формы Xamarin (стандартный проект .NET), Realm и MVVM Light, и мне нужно сгруппировать список объектов на основе инициала фамилии, чтобы я мог отобразить список переходов в виде списка.
У меня проблема при попытке сгруппировать RealmObject. У меня есть модель, как так ...
public class Participant : RealmObject
{
public string FirstName {get; set;}
public string LastName {get; set;}
public string Email {get; set;}
public string RegistrationCode {get; set;}
//More properties skipped out for brevity
}
Исходя из этой ссылки , у меня также есть класс группировки, подобный так ...
public class Grouping<K, T> : ObservableCollection<T>
{
public K Key { get; private set; }
public Grouping(K key, IEnumerable<T> items)
{
Key = key;
foreach (var item in items)
this.Items.Add(item);
}
}
В моей модели просмотра я могу выбрать участников (например, IQueryable<Participant>
) следующим образом ...
var participants = RealmInstance.All<Participant>();
Теперь я бы хотел сгруппировать это по инициалам фамилии, для которой я делаю следующее:
var groupedParticipants = from participant in participants
group participant by participant.LastName.Substring(0, 1) into pGroup
orderby pGroup.Key
select new Grouping<string, Participant>(pGroup.Key, pGroup);
, который выдает следующее исключение:
System.TypeInitializationException: инициализатор типа для 'Realms.RealmCollectionBase' вызвал исключение. ---> System.ArgumentException: тип свойства IGrouping не может быть выражен как тип схемы Realm
Я осмотрелся, но не смог найти рабочих примеров группировки наборов областей. Любая помощь будет принята с благодарностью.