Do a switch case and define your lambda expression based on your selected value.
var result = new List<classnamehere>();
var filter = txtbox.Text;
switch (ddl.SelectedValue) {
case "cost":
result = listSource.Find(s=>{s.cost == filter});
break;
case "itemcode":
result = listSource.Find(s=>{s.itemcode == filter});
break;
default:
result = listSource;
break;
}</classnamehere>
Correct me if I'm wrong but I think you CANT dynamically construct lambda exp on your scenario.
Good luck!