using System.Collections.Generic;
public static void Main()
var threshold = new PressureData { Time = .45 };
var pl = new List<PressureData>() {
new PressureData { Time = .1 },
new PressureData { Time = .2 },
new PressureData { Time = .3 },
new PressureData { Time = .4 },
new PressureData { Time = .5 },
new PressureData { Time = .6 },
new PressureData { Time = .7 }
var pdc = Comparer<PressureData>.Create((x, y) => x.Time.CompareTo(y.Time));
var index = pl.FindIndexOfFirstValueLessThan(threshold, pdc);
Console.WriteLine($"pl[{index}] = {pl[index].Time}");
public class PressureData
public double Pressure { get; set; }
public double Time { get; set; }
public static class ListExtensions
public static int FindIndexOfFirstValueLessThan<T>(this List<T> sortedList, T value, IComparer<T> comparer = null)
var index = sortedList.BinarySearch(value, comparer);