You cannot change the interpretation of compiler requests. They are referred to as understanding of queries - and the rules for translating them are built directly in the C # compiler. Each request is converted into an appropriate sequence of calls into extension methods in the Linq library.
If you use tools such as Reflector, you will see the corresponding sequence of calls to the extension method into which such expressions will be translated.
The rules for understanding queries are fully described in the C # 3.0 specification .
Although I agree that there are some specific cases where it may be useful to extend the syntax of a query in a language, I suspect that it requires significant complex compilation time processing to convert it to the corresponding function invocation syntax. I donβt think that in most cases it would be easy to just introduce processing for special cases without affecting the conversion of the whole expression.
At the same time, be aware that you can use chaining and regular extension methods to extend Linq's capabilities.
source share