<i>In theory</i> .Net 10 should make this obsolete, the headline features[1] are basically all about this. In practice, well, it's heuristics, I'm adding this to a particularly performance sensitive project right now :)<p>Edit: what's also nice is that C# recognizes Linq as a contract. So long as this has the correct method names and signatures (it does), the Linq <i>syntax</i> will light up automatically. You can also use this trick for your own home-grown things (add Select, Join, Where, etc. overloads) if the Linq syntax is something you like.<p>[1]: <a href="https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-10/runtime" rel="nofollow">https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotn...</a>