De nombreux développeurs confondent souvent les différences entre les méthodes
et lors de l'apprentissage de la linq vers SQL. Cet article expliquera clairement leurs différences via un exemple LINQ à SQL. Select
SelectMany
La méthode est utilisée pour convertir chaque élément de la séquence et génère une nouvelle séquence contenant l'élément de conversion. La méthode agit sur la séquence de la séquence, et elle la flotte en une seule séquence en renvoyant les éléments dans la séquence norme.
Ce qui suit est un exemple LINQ à SQL: Select
SelectMany
contient une série de listes, chaque liste représente le numéro de téléphone d'une personne.
La méthode fixe cette structure imbriquée et génère<code class="language-csharp">public class PhoneNumber { public string Number { get; set; } } public class Person { public IEnumerable<PhoneNumber> PhoneNumbers { get; set; } public string Name { get; set; } } IEnumerable<Person> people = new List<Person>(); // Select 获取一个电话号码列表的列表。 IEnumerable<IEnumerable<PhoneNumber>> phoneLists = people.Select(p => p.PhoneNumbers); // SelectMany 将列表扁平化成单个电话号码。 IEnumerable<PhoneNumber> phoneNumbers = people.SelectMany(p => p.PhoneNumbers); // 使用带 resultSelector 参数的重载方法连接父项和子项数据: var directory = people .SelectMany(p => p.PhoneNumbers, (parent, child) => new { parent.Name, child.Number });</code>
phoneLists
De plus, nous pouvons également utiliser le paramètre SelectMany
dans la méthode de charge lourde phoneNumbers
, qui contient les informations de l'objet parent (personne) dans le résultat. Par conséquent, les variables
SelectMany
Cet exemple complet démontre la différence de base entre les méthodes resultSelector
et directory
dans LINQ à SQL.
séquences plates Nlice, offrant ainsi une plus grande flexibilité dans la structure des données de l'opération. Select
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!