Je n'arrive pas à retrouver la citation, mais je pense que c'est Eric Lippert ( ?) qui l'a le mieux exprimée : ne pas mettre en œuvre une fonctionnalité est gratuit. Voir aussi http://blog.ryjones.org/2005/07/12/product-development/ y http://blog.ryjones.org/2005/07/12/product-development/
Ils ont de nombreuses fonctionnalités à mettre en œuvre et je ne peux pas imaginer que quelque chose de non standard comme celui-ci, dont la valeur est discutable, soit une priorité élevée. Je ne dis pas que cela n'a pas de valeur, mais cela pourrait mener à la confusion, ne serait probablement pas utilisé très souvent, etc. Je pense que a1ex07 a également raison. Cela devrait être un cas particulier puisque cela ne peut plus être géré de manière générique (== renvoie toujours un booléen, etc.).
Il est possible de faire la même chose avec LINQ, mais la syntaxe est un peu plus compliquée et nécessite l'allocation d'un tableau quelconque :
bool allTwo = new int[] { a, b, c }.All(i => i == 2);
Vous pouvez le faire à l'envers et vérifier si l'un d'entre eux != 2 :
bool allNotTwo = new int[] { a, b, c }.Any(i => i != 2);
Dans les deux cas, le système s'arrête dès que l'un d'eux n'est pas valide, ce qui permet souvent de ne pas parcourir toute la liste.
Editer : Voici un autre point : Le langage C# présente-t-il trop de caractéristiques ?
quelque chose de nouveau a été fait très u dans la langue