Qu'est-ce que l'appliance et comment utiliser les expressions lambda ?[dupliquer]

StackOverflow https://stackoverflow.com/questions/25376

  •  09-06-2019
  •  | 
  •  

Question

Cette question a déjà une réponse ici :

J'ai lu que les expressions Lambda sont un ajout incroyablement puissant à C#, mais elles me laissent perplexe.Comment peuvent-ils améliorer ma vie ou améliorer mon code ?Quelqu'un peut-il indiquer une bonne ressource pour apprendre de telles expressions ?

Ils ont l'air cool comme l'enfer, mais quel est leur rapport avec ma vie quotidienne de développeur asp.net ?

Modifier:Merci pour les exemples et merci pour le lien vers les articles d'Eric White.Je suis encore en train de les digérer maintenant.Une petite question :les expressions lambda sont-elles utiles pour autre chose que les requêtes ?Chaque exemple que j'ai vu était une construction de requête.

Était-ce utile?

La solution

:les expressions lambda sont-elles utiles pour autre chose que les requêtes

Les expressions Lamba ne sont rien d'autre qu'un moyen pratique d'écrire une fonction « en ligne ».

Ils sont donc utiles partout où vous souhaitez un peu de code qui peut être appelé comme s'il s'agissait d'une fonction distincte mais qui est en fait écrit dans son appelant.(En plus de conserver le code associé au même emplacement dans un fichier, cela vous permet également de jouer à des jeux amusants avec une portée variable - voir « fermetures » pour référence.)

Un exemple d'utilisation d'un lamba non liée à une requête pourrait être un peu de code qui fait quelque chose de manière asynchrone que vous démarrez avec ThreadPool.QueueUserWorkItem.Le point important est que vous pouvez également écrire ceci en utilisant des délégués anonymes (qui étaient une introduction C#2), ou simplement une simple fonction membre de classe distincte.

Ce http://blogs.msdn.com/jomo_fisher/archive/2005/09/13/464884.aspx est une superbe introduction étape par étape à tout cela, qui pourrait vous aider.

Autres conseils

Les Lambdas apportent la programmation fonctionnelle en C#.Ce sont des fonctions anonymes qui peuvent être transmises comme valeurs à certaines autres fonctions.Le plus utilisé dans LINQ.

Voici un exemple artificiel :

List<int> myInts = GetAll();
IEnumerable<int> evenNumbers = myInts.Where(x => x % 2 == 0);

Maintenant, quand vous passez par les numéros pairs, le lamda

x=> x % 2 == 0

est ensuite appliqué comme filtre à myInts.

Ils deviennent très utiles pour accroître la lisibilité des algorithmes complexes qui auraient de nombreuses conditions et boucles IF imbriquées.

Voici un exemple simple de quelque chose de cool que vous pouvez faire avec les lambdas :

List<int> myList = new List<int>{ 1, 2, 3, 4, 5, 6, 7, 8, 9 };
myList.RemoveAll(x => x > 5);
//myList now == {1,2,3,4,5}

La méthode RemoveAll prend un prédicat (un délégué qui prend des arguments et renvoie un booléen), tous ceux qui lui correspondent sont supprimés.L'utilisation d'une expression lambda rend les choses plus simples que de déclarer le prédicat.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top