Значит, вы хотите, чтобы индекс записи от первого лица соответствовал вашему условию?
var index = query.TakeWhile(person => person.LastName.CompareTo(name) < 0).Count();
Здесь подсчитывается количество элементов, соответствующих условию, а возвращаемое значение является индексом первого элемента, который не соответствуетсоответствует условию.
Просто обратите внимание, что вы должны отменить условие, которое вы использовали с Where (), так как в этом случае TakeWhile () используется для получения элементов, которые вам не нужны.