Retour de l'interview. Je partage avec vous et une bonne réponse précise est la bienvenue.Liste, ne pas perdre la référence
Le but, vous avez une méthode statique, cette méthode reçoit un IList<int>
vous avez pour récupérer les valeurs que vous pouvez diviser par 3 et faire le code.
Contrainte: La liste initiale (pour l'essentiel) comporte une référence sur la pile et les valeurs sur le tas, le résultat doit être retour (il est un procédé de vide) dans le même espace (sur le tas) que la liste originale. La solution affichée ici n'est pas correcte car dans la méthode un nouveau pointeur sur la pile + tas est créé dans le domaine de la méthode. Solution ?
Bonus: comment modifier le code pour recevoir non seulement int, mais float, double ....
static void Main(string[] args)
{
IList<int> list = new List<int>() { 9, 3, 10, 6, 14, 16, 20};
CanBeDivedByThree(list);
}
static void CanBeDivedByThree(IList<int> list)
{
list = (from p in list
where p % 3 == 0
orderby p descending
select p).ToList<int>();
}
Détails ou non cela fait partie des questions de l'entretien, même si je suis d'accord avec vous. –
@ Kris-I: Ces questions sont à mon humble avis mieux répondu en expliquant pourquoi ils n'ont pas de sens. –
@ 0xA3: pour une liste générique, il est raisonnable de filtrer sur un prédicat générique fourni par l'utilisateur. – Vlad