Un "rapide" de chalutage par le biais de la spécification du langage C# a donné aucune réponse pour m'expliquer la sortie de le code suivant:
enum en {
a = 1, b = 1, c = 1,
d = 2, e = 2, f = 2,
g = 3, h = 3, i = 3,
j = 4, k = 4, l = 4
}
en[] list = new en[] {
en.a, en.b, en.c,
en.d, en.e, en.f,
en.g, en.h, en.i,
en.j, en.k, en.l
};
foreach (en ele in list) {
Console.WriteLine("{1}: {0}", (int)ele, ele);
}
C'sorties:
c: 1
c: 1
c: 1
d: 2
d: 2
d: 2
g: 3
g: 3
g: 3
k: 4
k: 4
k: 4
Maintenant, pourquoi serait-il choisir le troisième "1", le premier "2" et "3", mais le second, "4"? Est-ce un comportement indéfini, ou ai-je raté quelque chose d'évident?