Just a type change on the return of TryFind it would implicitly cast to anyway? Really? Is this a thing? Are you assuming data flow would eliminate most of the ternary in TryFind? If not, and if you really want a Contains(), you should do the std find call here and avoid the call to TryFind entirely.