Don't you think the reason is obvious and clear! You are trying to return Generic List of type contract where the return types defined is List of type string?
Change the return type to
List<Contract>
OR convert
List<Contract>
to
List<String>
explicitly.
public List<Contract> GetContract(string Contract)
{
Contract_GenDataContext db = new Contract_GenDataContext();
var matchingContract = from con in db.Contracts
where con.Contract1.Contains(Contract)
select con;
return matchingContract.ToList();
}