using System.Collections.Generic;
public static void Main()
new Card { Rank = "A", Value = 9, Suit = 'D' },
new Card { Rank = "A", Value = 10, Suit = 'H' },
new Card { Rank = "T", Value = 12, Suit = 'D' },
new Card { Rank = "T", Value = 13, Suit = 'S' },
new Card { Rank = "5", Value = 5, Suit = 'S' },
.GroupBy(card => card.Rank)
.Where(g => g.Skip(1).Any())
.Select(o => new { Rank = o.Key, Value = o.Max(v => v.Value) });
Result result = new Result
Ranks = pairsList.Select(o => o.Rank),
MaxValue = pairsList.Max(o => o.Value)
Console.WriteLine($"Ranks: {string.Join(",", result.Ranks)} and max value : {result.MaxValue}");
public string Rank { get; set; }
public int Value { get; set; }
public char Suit { get; set; }
public IEnumerable<string> Ranks { get; set; }
public int MaxValue { get; set; }