Другой подход - генерировать GalleryImage как частичный класс, а затем иметь другой файл с наследованием и реализацией IEquatable, Equals, GetHash.
: ЭТОНЕ LINQ-TO-SQL ВОПРОС. Это LINQ для объектов.
Краткий вопрос:
Существует ли простой способ в LINQ для объектов, чтобы получить отдельный список объектов из списка на основе ключевого свойства объектов.
Длинный вопрос:
Я пытаюсь сделатьDistinct()
операция над спискомобъекты которые имеют ключ как одно из своих свойств.
class GalleryImage {
public int Key { get;set; }
public string Caption { get;set; }
public string Filename { get; set; }
public string[] Tags {g et; set; }
}
У меня есть списокGallery
объекты, которые содержатGalleryImage[]
.
Из-за того, как работает веб-сервис [sic], у меня есть дубликатыGalleryImage
объект. я думал, что это будет простой вопрос, чтобы использоватьDistinct()
чтобы получить четкий список.
Это запрос LINQ, который я хочу использовать:
var allImages = Galleries.SelectMany(x => x.Images);
var distinctImages = allImages.Distinct<GalleryImage>(new
EqualityComparer<GalleryImage>((a, b) => a.id == b.id));
Проблема в том, чтоEqualityComparer
это абстрактный класс.
Я не хочу:
реализовать IEquatable наGalleryImage
потому что это генерируетсядолжен написать отдельный класс для реализацииIEqualityComparer
какпоказано здесьЕсть ли конкретная реализацияEqualityComparer
где-то что мне не хватает?
Я бы подумал, что будет простой способ получить «отдельные» объекты из набора на основе ключа.