using System.Collections;
using System.Collections.Generic;
public static void Main()
List<ListItem> listItems = new List<ListItem>
new ListItem{ Item1="Item1", Item2="Item2"},
new ListItem{ Item1="Item2", Item2="Item22"},
new ListItem{ Item1="Item3", Item2="Item23"},
new ListItem{ Item1="Item4", Item2="Item24"},
new ListItem{ Item1="Item4", Item2="Item244"},
new ListItem{ Item1="Item4", Item2="Item244"},
new ListItem{ Item1="Item5", Item2="Item25"},
new ListItem{ Item1="Item1", Item2="Item12"},
new ListItem{ Item1="Item6", Item2="Item26"},
new ListItem{ Item1="Item7", Item2="Item27"},
new ListItem{ Item1="Item1", Item2="Item22"},
new ListItem{ Item1="Item8", Item2="Item28"},
new ListItem{ Item1="Item9", Item2="Item29"},
new ListItem{ Item1="Item8", Item2="Item288"},
new ListItem{ Item1="Item10", Item2="Item210"},
new ListItem{ Item1="Item8", Item2="Item288"},
new ListItem{ Item1="Item11", Item2="Item211"},
.GroupBy(x=>new {x.Item1,x.Item2})
.Select(g=>new {Item1 = g.Key.Item1,Item2 = g.Max(m=>m.Item2)}).ToList();
result.ForEach(x=>Console.WriteLine(string.Format("{0},{1}",x.Item1,x.Item2)));
public string Item1 {get;set;}
public string Item2 {get;set;}