Select
et SelectMany
Choisir entre les méthodes de Linq Select
et SelectMany
peut être délicate, surtout lorsque vous travaillez avec LINQ à SQL. Des exemples de tableaux simples ne capturent souvent pas pleinement leurs implications de base de données.
Select
: Récupération des valeurs individuelles Utilisez Select
lorsque votre requête doit extraire des valeurs uniques des entités associées. Par exemple:
<code class="language-csharp">IEnumerable<Person> people = new List<Person>(); var phoneNumbers = people.Select(p => p.PhoneNumber);</code>
Cela prend une liste d'objets Person
et renvoie une liste contenant uniquement leurs propriétés PhoneNumber
.
SelectMany
: aplatir les collections imbriquées SelectMany
est crucial pour "aplatir" les structures de données imbriquées. Ajustez l'exemple:
<code class="language-csharp">var phoneNumbers = people.SelectMany(p => p.PhoneNumbers);</code>
Ici, en supposant que PhoneNumbers
est une collection, SelectMany
combine tous les numéros de téléphone de toutes les personnes dans une seule liste. Ceci est utile lorsque vous avez besoin d'une seule liste unifiée de tous les numéros de téléphone.
Un avantage clé de SelectMany
est sa capacité à inclure des données d'entité parent dans les résultats. Considérez ceci:
<code class="language-csharp">var directory = people .SelectMany(p => p.PhoneNumbers, (parent, child) => new { parent.Name, child.Number });</code>
Cela crée un type anonyme contenant à la fois le nom de la personne (parent.Name
) et leur numéro de téléphone (child.Number
), rejoignant efficacement les données des deux niveaux.
pour expérimenter Select
et SelectMany
en action, explorez une démo en direct (le lien vers .NET Fiddle Exemple irait ici si fourni). Cette expérience pratique renforcera votre compréhension de ces puissants opérateurs LINQ dans un contexte de base de données.
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!