TakeWhile, pero consigue el elemento que lo detuvo también

Me gustaría usar el LINQTakeWhile Funciona en LINQ to Objects. Sin embargo, también necesito saber el primer elemento que "rompió" la función, es decir, el primer elemento donde la condición no era cierta.

¿Hay una sola función para obtener todos los objetos que no coinciden, más el primero que sí?

Por ejemplo, dado el conjunto.{1, 2, 3, 4, 5, 6, 7, 8},

mySet.MagicTakeWhile(x => x != 5);

=> {1, 2, 3, 4, 5}

Respuestas a la pregunta(3)

Su respuesta a la pregunta