Heim > Backend-Entwicklung > C++ > LINQ SELECT vs. SELECTMANY: Wie unterscheiden sie sich, wenn sie verschachtelte Sammlungen abflachen?

LINQ SELECT vs. SELECTMANY: Wie unterscheiden sie sich, wenn sie verschachtelte Sammlungen abflachen?

Susan Sarandon
Freigeben: 2025-01-28 17:46:08
Original
992 Leute haben es durchsucht

LINQ Select vs. SelectMany: How Do They Differ When Flattening Nested Collections?

lINQ SELECMANY: Der Unterschied zwischen der flachen verschachtelten Sammlung

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

In diesem Beispiel enthält

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>
Nach dem Login kopieren
, die nur eine einzelne Telefonnummer enthält.

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

Variablen eine Liste anonymer Objekte, die den Namen und die Telefonnummer der Person enthalten.

SelectMany Dieses umfassende Beispiel zeigt den grundlegenden Unterschied zwischen resultSelector und directory in LINQ zu SQL.

einzelne Elemente in der Konvertierungssequenz und

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage