using System; using System.Collections.Generic; public class Test { static void Main(string[] args) { var list = new List>(); list.Add(Tuple.Create(DateTime.Parse("1/29/2018"), 1)); list.Add(Tuple.Create(DateTime.Parse("1/25/2018"), 2)); list.Add(Tuple.Create(DateTime.Parse("1/20/2018"), 3)); list.Add(Tuple.Create(DateTime.Parse("1/10/2018"), 4)); list.Add(Tuple.Create(DateTime.Parse("1/3/2018"), 5)); Console.WriteLine(~list.BinarySearch(Tuple.Create(DateTime.Parse("1/1/2018"), 0), TupleCompare.Instance)-1); Console.WriteLine(~list.BinarySearch(Tuple.Create(DateTime.Parse("1/5/2018"), 0), TupleCompare.Instance)-1); Console.WriteLine(~list.BinarySearch(Tuple.Create(DateTime.Parse("1/28/2018"), 0), TupleCompare.Instance)-1); Console.WriteLine(~list.BinarySearch(Tuple.Create(DateTime.Parse("2/1/2018"), 0), TupleCompare.Instance)-1); } class TupleCompare : IComparer> { public static readonly TupleCompare Instance = new TupleCompare(); public int Compare(Tuple x, Tuple y) { return -x.Item1.CompareTo(y.Item1); } } }