Avatar ·

Quelle est la différence entre la programmation déclarative et impérative en C# ?

Bonjour à tous ! Je suis un développeur C# débutant, et les termes « impératif » et « déclaratif » me confondent constamment. J'ai lu différents articles, mais je n'ai pas encore bien compris la différence en pratique. Par exemple, j'écris ce code pour filtrer une liste de nombres :
List<int> numbers = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
List<int> evenNumbers = new List<int>();

for (int i = 0; i < numbers.Count; i++)
{
    if (numbers[i] % 2 == 0)
    {
        evenNumbers.Add(numbers[i]);
    }
}
C'est une approche impérative, n'est-ce pas ? Je décris explicitement COMMENT faire : je crée une boucle, je vérifie la condition, j'ajoute à la liste. Mais ensuite je vois une autre façon :
var evenNumbers = numbers.Where(n => n % 2 == 0).ToList();
C'est déjà déclaratif ? Je dis simplement CE que je veux obtenir (les nombres pairs), et non pas comment le faire exactement. Mais je n'en suis pas tout à fait sûr. Quelle est la différence clé ? Quand utiliser quelle approche ? Y a-t-il des situations où