If I have a class like this:

```
public class Foo
{
  public string Category {get;set;}
  public IEnumerable<Bar> Bars {get;set};
}

```

And I have a collection of Foos like this:

```
foo1: { Category = "Amazing", Bars = /* some Bars */ }
foo2: { Category = "Amazing", Bars = /* some Bars */ }
foo3: { Category = "Extraordinary", Bars = /* some Bars */ }

```

How would I aggregate this into a new collection of 2 Foos that look like this:

```
foo4: { Category = "Amazing", Bars = /* all the Bars from foo1 and foo2 because both of them have the category "Amazing" */ }
foo5: { Category = "Extraordinary", Bars = /* some Bars */ }

```

Apologies if I'm not explaining this in the correct language. Aggregation in Linq defeats me every time.

Thanks.