using System; using System.Globalization; using System.Linq; using System.Collections; using System.Collections.Generic; public class Test { class grpitem { public string groupCode; public string item; } static List list = new List() { new grpitem() {groupCode="3", item="b"}, new grpitem() {groupCode="1", item="b"}, new grpitem() {groupCode="3", item="c"}, new grpitem() {groupCode="2", item="b"}, new grpitem() {groupCode="2", item="a"}, new grpitem() {groupCode="2", item="c"}, new grpitem() {groupCode="1", item="a"}, new grpitem() {groupCode="3", item="a"}, new grpitem() {groupCode="3", item="d"} }; public static void Main() { IEnumerable ordered = list.GroupBy(grp => grp.groupCode) .SelectMany(g => g.OrderBy(grp => grp.item)); foreach(grpitem g in ordered) Console.WriteLine("groupCode:{0} item:{1}",g.groupCode,g.item); } }