I would consider it a “Performance Footgun” to have special, easy syntax for something so fundamental as “Is this thing in this arbitrarily sized collection”? Even things like only allowing it for O(log(n)) doesn’t help because the Constant Factor and the overall size are just as important. It would work find to be O(n) or O(n^2) for small collections, but, O(log(N)) might suck for large collections if the C factor is sufficiently large. What is wrong with “a.Contains(b)”? Why special syntax? What is gained? Make it easier to do something non-performant without thinking about it much? How many things that have perfectly valid functions calls need another special, obfuscated syntactical operator or keyword? Where does this end?
Again, individually, proposals such as this seem reasonable, collectively, they’ll sink the ship.