Вы выбираете список BaObject.BaObjectCode
в своем первом утверждении, поэтому variables
- это тип строки
.Select(w => w.BaObjectCode).ToList();
, который вы должны сделать
var maxCode = variables.Where(w => w.StartsWith(prefix) && w.Length == length)
.OrderByDescending(o => o).FirstOrDefault();
в последнем утверждении.Выбрать вообще не нужно, его можно удалить