Why not ditch the string compare and explicitly check?
index = llCodeList.FindIndex(
f => f.Threshold.ToString()
.Contains(searchText));
Are you sure that the search text is a subset of the threshold number?
Also it may be that you're not understanding how string.Compare works, it won't check numerical value but string value. For the above if searchText is 4 and the threshold is -40 would match your predicate. My example more explicitly demonstrates the behavior of string.Compare(...,...,...) >= 0
If you're trying to find results based on having a greater than or equal to match on threshold and searchText you could do this
int search = 0;
int32.TryParse(searchText, out search);
index = llCodeList.FindIndex(f => f.Threshold >= search);
f.Thresholdis lexicographically equal or greater thansearchText. how dof.ThresholdandsearchTextlook like?f.Thresholdthat's what>= 0means fromstring.Compare0 == match, 1 == string a is greater than string b (not by numerical value)