using System; using System.Linq; public class Program { public static void Main() { var table = new[] { new { id = 1, val = 6, sym = 'ф' }, new { id = 1, val = 7, sym = 'ы' }, new { id = 2, val = 9, sym = 'в' }, new { id = 2, val = 3, sym = 'а' } }; var q = from row in table group row by row.id into gr select (from row in gr orderby row.val descending select row ).First(); foreach (var row in q) Console.WriteLine(row); } }