Here's something I just ran into this week: the need for a case-insensitive switch block. Why, you ask? Let me describe how I came across the issue. Code analysis reports excessive/unnecessary ToUpper() and ToLower() calls because they can become a performance problem -- granted, a minor one, but it's a hit nonetheless. Typically, this happens when you're comparing two strings and you don't care about their case. Instead of the ToUpper() call, code analysis suggests the use of String.Compare(), which can do a case-insensitive search. Well, that's great and fantastic, but when you're doing this in a switch block, that's not quite possible. I could've changed the code to use an if block, but that would've been more of a readability/maintenance problem. Basically, all I'm looking for is a switch block that accepts a string and a boolean value indicating whether it's case sensitive or not -- something like this: switch (string, bool). Behind the scenes, the compiler can change that to use String.Compare() inside an if block or whatever the appropriate IL should be. I imagine this performance benefit of such a feature would be somewhat minimal, but I thought the idea was interesting.