using System.Collections.Generic;
using System.Collections;
public static void Main()
var listOfCalculation = Enumerable.Range(1,10).Select(x=>new Calculation
ErrorCode = x.ToString(),
CalculationDetails = Enumerable.Range(x,10).Select(y=>new CalculationDetails{
Category = y%2==0 ? Category.CategoryA:Category.CategoryB
var result = listOfCalculation.Max(x=>x.CalculationDetails.Where(c=>c.Category.Equals(Category.CategoryB)).Max(c=>c.Amount));
Console.WriteLine(result);
public ICollection<CalculationDetails> CalculationDetails;
public class CalculationDetails
public static class Category
public const string CategoryA = "A";
public const string CategoryB = "B";