I have a couple of classes that look like this (simplified for SO):

```
public class Result
{
    pubic List<Review> Reviews { get; set; }
}

public class Review
{
    public string Name { get; set; }
    public int Amount { get; set; }
}

```

What I'm starting with is a `List<Result>` object. Each of the "Result" objects in the list obviously has another List property within it. Within each "Result" object, its list of Reviews will never have a duplicate "Name" property. However, there is an expected situation where there WILL be duplicate "Name" properties across all Result objects in the list.

For example:

```
var results = new List<Result>();

var result1 = new Result();
result1.Reviews = new List<Review>();
result1.Reviews.Add(new Review { Name = "ABC", Amount = 5 });
result1.Reviews.Add(new Review { Name = "DEF", Amount = 4 });
results.Add(result1);

var result2 = new Result();
result2.Reviews = new List<Review>();
result2.Reviews.Add(new Review { Name = "ABC", Amount = 1 });
result2.Reviews.Add(new Review { Name = "WRA", Amount = 4 });
results.Add(result2);

var result3 = new Result();
result3.Reviews = new List<Review>();
result3.Reviews.Add(new Review { Name = "ABC", Amount = 2 });
result3.Reviews.Add(new Review { Name = "ARA", Amount = 4 });
results.Add(result3);

```

So, you can see that across the list of results, the name "ABC" is duplicated in the list of Reviews. What I need to do is to write a LINQ query, operating on the `results` object that will remove all of the duplicate Review objects from the child lists EXCEPT for the highest one. So in this case, result2 and result3 would both have their "ABC" reviews completely removed from the list.

Any suggestions on how do do this using LINQ? I'm looking for solutions on my own as well, just figured I'd post here to see if it's faster than figuring it out on my own. :)