Search code examples
c#linqmax

C# LINQ How to get max value


Having a list with data like:

{ surname = surname_1, title = title_4, release_number = 111, year = 2021 }
{ surname = surname_1, title = title_1, release_number = 111, year = 2020 }
{ surname = surname_2, title = title_5, release_number = 222, year = 2021 }
{ surname = surname_2, title = title_2, release_number = 222, year = 2020 }
{ surname = surname_3, title = title_8, release_number = 222, year = 2022 }

How can I get max year for each release_number:

{ReleaseNumber = 111, Year = 2021}
{ReleaseNumber = 222, Year = 2022}

Solution

  • Considering you have a list of items you could have this LINQ query:

    var releaseGroups = 
        from item in list
        group item by item.release_number into releaseGroup
        select new {ReleaseNumber = releaseGroup.Key, MaxYear = realseGroup.Select(o=>o.year).Max()};