


Explication détaillée d'exemples de délégués anonymes et d'expressions Lambda en C#
1. C# de 1.0 à 4.0, avec le support de Linq et des génériques, le code devient de plus en plus simple et élégant
1 int[] nums = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 }; 2 IEnumerable<int> newNums = from n in nums where n > 0 select n; 3 newNums = newNums.Where(new Func<int,int, bool>(delegate(int i,int index) { return i < index; })); 4 newNums = newNums.Where(new Func<int, int, bool>((int i, int index)=> i < index)); 5 newNums = newNums.Where(delegate(int i, int index) { return i < index; }); 6 newNums = newNums.Where((i, index) => i < index); 7 foreach (var i in newNums) 8 { 9 Console.WriteLine(i);10 }
2. être utilisé Opérations de base de données vers EF
1 Créer deux classes d'entités
1 public class Store 2 { 3 public string Id; 4 public string Name; 5 } 6 public class Person 7 { 8 public string name { get; set; } 9 public int age { get; set; }10 public string StoreId { get; set; }11 }
2. Insérer des données
1 var Stores = new List<Store>() 2 { 3 new Store() { Id="1",Name="1班"}, 4 new Store() { Id="2",Name="2班"} 5 }; 6 7 var Persons = new List<Person>() 8 { 9 new Person() { name="p1",age=1, StoreId="1"},10 new Person() { name="p2",age=2, StoreId="1"},11 new Person() { name="p3",age=3, StoreId="1"},12 new Person() { name="p4",age=4, StoreId="2"},13 new Person() { name="p5",age=5, StoreId="1"},14 new Person() { name="p6",age=6, StoreId="2"},15 new Person() { name="p7",age=7, StoreId="1"},16 new Person() { name="p8",age=8, StoreId="1"}17 };
3. Interrogez le nombre de personnes de moins de 3 ans en classe 1 et en classe 2
1 var plst = Persons.Where(o => o.age > 3).GroupBy(o => o.StoreId).Select(g => new { StoreId = g.Key, Count = g.Count() }).Join(Stores, s => s.StoreId, p => p.Id, (s, p) => new { s.StoreId, storeName = p.Name, s.Count });2 foreach (var p in plst)3 {4 Console.WriteLine(p.storeName + "有" + p.Count + "个人");5 }
4. Sortie
2班有2个人 1班有3个人
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds



En C++, il existe deux manières de gérer les exceptions à l'aide d'expressions Lambda : intercepter l'exception à l'aide d'un bloc try-catch et gérer ou renvoyer l'exception dans le bloc catch. À l'aide d'une fonction wrapper de type std::function, sa méthode try_emplace peut intercepter les exceptions dans les expressions Lambda.

En C++, une fermeture est une expression lambda qui peut accéder à des variables externes. Pour créer une fermeture, capturez la variable externe dans l'expression lambda. Les fermetures offrent des avantages tels que la réutilisabilité, la dissimulation des informations et une évaluation paresseuse. Ils sont utiles dans des situations réelles telles que les gestionnaires d'événements, où la fermeture peut toujours accéder aux variables externes même si elles sont détruites.

Les avantages des expressions lambda dans la programmation multithread C++ incluent la simplicité, la flexibilité, la facilité de passage des paramètres et le parallélisme. Cas pratique : utilisez des expressions lambda pour créer des multi-threads et imprimer des ID de thread dans différents threads, démontrant la simplicité et la facilité d'utilisation de cette méthode.

Les expressions C++ Lambda prennent en charge les fermetures, qui enregistrent les variables de portée de fonction et les rendent accessibles aux fonctions. La syntaxe est [capture-list](parameters)->return-type{function-body}. capture-list définit les variables à capturer. Vous pouvez utiliser [=] pour capturer toutes les variables locales par valeur, [&] pour capturer toutes les variables locales par référence, ou [variable1, variable2,...] pour capturer des variables spécifiques. Les expressions Lambda ne peuvent accéder qu'aux variables capturées mais ne peuvent pas modifier la valeur d'origine.

Le développement des technologies d’intelligence artificielle (IA) bat son plein aujourd’hui et elles ont montré un grand potentiel et une grande influence dans divers domaines. Aujourd'hui, Dayao partagera avec vous 4 cadres de projets liés au modèle d'IA open source .NET LLM, dans l'espoir de vous fournir une référence. https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel est un kit de développement logiciel (SDK) open source conçu pour intégrer de grands modèles de langage (LLM) tels qu'OpenAI, Azure

Que vous soyez débutant ou professionnel expérimenté, la maîtrise du C# ouvrira la voie à votre carrière.

Il existe trois façons de capturer des expressions lambda de variables externes en C++ : Capture par valeur : créez une copie de la variable. Capture par référence : obtenez une référence de variable. Capture par valeur et référence simultanément : permet de capturer plusieurs variables, soit par valeur, soit par référence.

Comment effectuer une évaluation paresseuse à l'aide d'expressions lambda C++ ? Utilisez des expressions lambda pour créer des objets fonction évalués paresseusement. Le calcul retardé diffère l’exécution jusqu’à ce qu’il soit nécessaire. Calculez les résultats uniquement lorsque cela est nécessaire, améliorant ainsi les performances.
