Distinct in Entity framework

У меня есть список объектов, некоторые из которых имеют одинаковые идентификаторы, поэтому я хотел бы удалить те элементы, которые дублируются.

Я пробовал что-то вроде этого:

List<post> posts = postsFromDatabase.Distinct().ToList();

Но не работает!

Я написал этот метод, чтобы избежать дублирования:

public List<Post> PostWithOutDuplicates(List<Post> posts)
    {
        List<Post> postWithOutInclude = new List<Post>();
        var noDupes = posts.Select(x => x.Id).Distinct();
        if (noDupes.Count() < posts.Count)
        {
            foreach (int idPost in noDupes)
            {
                postWithOutInclude.Add(posts.Where(x => x.Id == idPost).First());
            }
            return postWithOutInclude;
        }
        else
        {
            return posts;
        }
    }

Есть идеи, как улучшить производительность ??

Заранее спасибо.

7
задан Piotr Justyna 16 November 2012 в 10:04
поделиться