I have two generic Lists, one called “Featured” and the other called “Filtered”.
List<Content> Featured = new List<Content>();
List<Content> Filtered = new List<Content>();
Both contain “Content” items which are simple classes like so :
public class Content
{
public long ContentID { get; set;}
public string Title { get; set; }
public string Url { get; set; }
public string Image { get; set; }
public string Teaser { get; set; }
public Content(long contentId, string title, string url, string image, string teaser)
{
ContentID = contentId;
Title = title;
Url = url;
Image = image;
}
}
Any items that appear in “Filtered” but also appear in “Featured” need to be removed from “Filtered”. Additionally, both lists will then be combined into a single generic list with the “Featured” items appearing first.
I know I could write a couple of foreach loops to do this but I can’t help feel there must be a more elegant method using LINQ.
I am using C# 4.0.
If you have an IEqualityComparer defined you can use the
Unionmethod:A rough implementation of MyContentComparer would be: