Почему бы не бросить сравнение строк и явно проверить?
index = llCodeList.FindIndex(
f => f.Threshold.ToString()
.Contains(searchText));
Вы уверены, что текст поиска является подмножеством порогового числа?
Также может случиться так, что вы не понимаете, как работает string.Compare
, он будет проверять не числовое значение, а строковое значение. Для вышеупомянутого, если searchText
равно 4
и порог -40
будет соответствовать вашему предикату. Мой пример более явно демонстрирует поведение string.Compare(...,...,...) >= 0
Если вы пытаетесь найти результаты, основываясь на том, что они больше или равны совпадению для порога и searchText, вы можете сделать это
int search = 0;
int32.TryParse(searchText, out search);
index = llCodeList.FindIndex(f => f.Threshold >= search);