Lorsque vous utilisez LINQ à SQL, il est important de comprendre la différence entre
et. Select
Il est utilisé pour récupérer un seul élément de l'ensemble de données, et SelectMany
les résultats de la requête utilisés pour aplatir l'ensemble imbriqué. Select
SelectMany
Les exemples suivants expliqueront les différences entre les deux plus clairement:
En supposant que nous avons une classe
qui contient un attribut, qui renvoie un ensemble d'une instance Person
. Afin de récupérer tous les numéros de téléphone de tout le personnel, nous pouvons utiliser PhoneNumbers
: PhoneNumber
Select
<code class="language-csharp">IEnumerable<Person> people = new List<Person>(); // Select: 返回一个电话号码列表的列表 IEnumerable<IEnumerable<PhoneNumber>> phoneLists = people.Select(p => p.PhoneNumbers);</code>
phoneLists
SelectMany
De plus, si nous voulons inclure les données du père
<code class="language-csharp">// SelectMany: 将集合扁平化为一个电话号码列表 IEnumerable<PhoneNumber> phoneNumbers = people.SelectMany(p => p.PhoneNumbers);</code>
Person
SelectMany
En comprenant la différence entre et
<code class="language-csharp">// 带结果选择器的 SelectMany: 在结果中包含父数据 var directory = people .SelectMany(p => p.PhoneNumbers, (parent, child) => new { parent.Name, child.Number });</code>
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!