Juste en essayant quelques bases avec C# Lookup collection et trouvé, que cet exemple simple compiler amende, même IGrouping interface devrait avoir TElement défini comme int.Pourquoi je ne reçois pas d'erreur de syntaxe dans cet exemple de code?
string txt = "Hello world!";
ILookup<char, int> occurrences = Enumerable.Range(0, txt.Length).ToLookup(i => txt[i], i => i);
foreach (IGrouping<char, string> values in occurrences)
Console.WriteLine($"{values.Key}: {string.Join(", ", values)}");
Évidemment, je reçois une erreur d'exécution sur un cast invalide. Mais je m'y attendais, que ce travail pour le compilateur ...
@PeterDuniho: Peut-on se contenter de [cette question et ces réponses] (http://stackoverflow.com/a/20205068/717732) alors? C'est un littéral. Oui, bien que le ** titre ** soit impair, la question et la sémantique/signification/.. sont les mêmes. – quetzalcoatl
@Quetzalcoatl: beaucoup mieux, oui ... cela semble beaucoup plus comme cette question. Je pense que Scott est allé un peu dans les mauvaises herbes vers la fin de sa réponse avec l'entreprise au sujet de la covariance, mais sinon c'est un fac-similé raisonnable de ce Q & A. –