using System.Collections;
using System.Collections.Generic;
using System.Globalization;
public static void Main()
List<proc> collection = new List<proc>();
collection.Add(new proc() {ProcessSeq = 11, ProjectSeq = 1, ProjectValue=50000, Active ="Y"});
collection.Add(new proc() {ProcessSeq = 12, ProjectSeq = 1, ProjectValue=10000, Active ="Y"});
collection.Add(new proc() {ProcessSeq = 13, ProjectSeq = 2, ProjectValue=70000, Active ="Y"});
collection.Add(new proc() {ProcessSeq = 14, ProjectSeq = 2, ProjectValue=90000, Active ="Y"});
var ProcessAudList = collection
.Where(x => x.Active == "Y")
.GroupBy(x => x.ProjectSeq, (key, list) => new {
.Select(x => x.grp.OrderByDescending(g => g.ProjectValue).First());