Búsqueda binaria de una lista de C # usando la condición de delegado

Tengo unList<T> que quiero buscar no para un artículo determinado sino para un artículo que satisfaga una condición dada. Dado un elemento en la lista, puedo probar cuál de las 4 condiciones es verdadera:

el elemento deseado debe estar a la izquierdael elemento deseado debe estar a la derechaeste es el elemento deseadola deseada no puede estar en la lista

Un vistazo rápido a las funciones de la lista no fue alentador, así que me pregunto si alguien sabe de una función que pueda usar.

Edit: esta es una lista temporal local, así que sé que se ordenará correctamente

Edit: BinarySearch se ve casi bien pero en mi caso no tengo un elemento para comparar. Usaría la solución de Jon Skeet e ignoraría un argumento, pero no estoy seguro de poder contar con que siempre sea el mismo argumento.

Respuestas a la pregunta(3)

Su respuesta a la pregunta