Find items in collection one that are the greatest value less than an item in collection two
To me there can only be two such numbers in the first set an they can be selected with these two queries:

var set1MaxLessThenSet1Min = set1.TakeWhile(i =&gt; i &lt; set2 .Min()).LastOrDefault();
var set1MaxLessThenSet2Min = set1.TakeWhile(i =&gt; i &lt; set2 .Max()).LastOrDefault();


this means that for those two sets:

var set1 = new List&lt;int&gt; { 1, 5, 6, 7, 9 };
var set2 = new List&lt;int&gt; { 3, 4, 9, 10, 11 };


those numbers are 1 and 9 whereas your query finds also the 7 which is not at the same time the highest number in set1 and lower then the highest in set2.

Both queries are for ordered sets. If they are not ordered the Where clause should be used.