Другой подход - генерировать 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 где-то что мне не хватает?

Я бы подумал, что будет простой способ получить «отдельные» объекты из набора на основе ключа.

Ответы на вопрос(8)

Ваш ответ на вопрос