Viele Entwickler verwechseln häufig die Unterschiede zwischen
und Methoden beim Lernen von Linq zu SQL. In diesem Artikel wird ihre Unterschiede durch ein LINQ zu SQL -Beispiel deutlich erläutert. Select
SelectMany
Die Methode wird verwendet, um jedes Element in der Sequenz umzuwandeln, und erzeugt eine neue Sequenz, die das Konvertierungselement enthält. Die -Methode wirkt auf die Sequenz der Sequenz und flattt sie in eine einzelne Sequenz, indem sie die Elemente in der Norm -Sequenz zurückgibt.
Folgendes ist ein LINQ zu SQL -Beispiel: Select
SelectMany
eine Reihe von Listen, jede Liste repräsentiert die Telefonnummer einer Person.
Die Methode flattt diese verschachtelte Struktur aus und generiert<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
Zusätzlich können wir den Parameter SelectMany
in der Methode phoneNumbers
schwere Last verwenden, die die Informationen des übergeordneten Objekts (Person) im Ergebnis enthält. Daher speichern
SelectMany
Dieses umfassende Beispiel zeigt den grundlegenden Unterschied zwischen resultSelector
und directory
in LINQ zu SQL.
flache Nliking -Sequenzen bieten dadurch eine größere Flexibilität in der Betriebsdatenstruktur. Select
Das obige ist der detaillierte Inhalt vonLINQ SELECT vs. SELECTMANY: Wie unterscheiden sie sich, wenn sie verschachtelte Sammlungen abflachen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!