using System.Collections.Generic;
private static int HighestPair(IEnumerable<int> list) => list
.Where(group => group.Count() >= 2)
.Select(group => group.Key)
.DefaultIfEmpty(int.MinValue)
public static void Main()
List<int> list1 = new List<int> { 10, 8, 10, 7, 4, 14, 3 };
List<int> list2 = new List<int> { 10, 8, 10, 7, 4, 13, 3 };
List<int> list3 = new List<int> { 10, 8, 12, 12, 4, 13, 3 };
var result = lists.MaxBy(list => HighestPair(list));
Console.WriteLine("List with highest pair:");
Console.WriteLine(string.Join(", ", result));
var highestPair = lists.Max(list => HighestPair(list));
Console.WriteLine("Highest pair:");
Console.WriteLine(highestPair);
.OrderByDescending(list => HighestPair(list))
.ThenByDescending(list => list.Max())
Console.WriteLine("Lists ordered:");
Console.WriteLine(string.Join(Environment.NewLine, ordered.Select(list => string.Join(", ", list))));