Aggregating lists within objects having the same key

If I have a list of Issue objects that have the following parameters: List<int> ids, string key that looks like this:

List<Issue> issues = new List<Issue>()
{
   new Issue()
   {
      ids = new List<int>(){1},
      key = "CODE1"
   },
           
   new Issue()
   {
      ids = new List<int>(){2},
      key = "CODE1"
   }
};

I am looking for a way to aggregate these two Issue objects by their key such that there would only be 1 item like this in the list, but with two ids in the list of ints. Something which can be translated to:

List<Issue> issues = new List<Issue>()
{
   new Issue()
   {
      ids = new List<int>(){1, 2},
      key = "CODE1"
   }
};

Currently, my idea would be to just parse through the list and do different validations, but I was wondering whether there's a "quick" way of doing this. Tried my luck with Aggregate() but with no luck so far.


you could group them by the key and for each key flatten the ids list using SelectMany:

List<Issue> agregated = issues.GroupBy(x => x.key)
    .Select(g => new Issue
        {
            key = g.Key, 
            ids = g.SelectMany(s => s.ids).ToList()
        }).ToList();