多くの開発者は、LINQをSQLに学習するときに、
メソッドとメソッドの違いを混同します。この記事では、LINQからSQLの例を介してそれらの違いを明確に説明します。 Select
SelectMany
このメソッドは、シーケンス内の各要素を変換するために使用され、変換要素を含む新しいシーケンスを生成します。 メソッドは、シーケンスのシーケンスに作用し、ノルムシーケンスの要素を返すことにより、単一のシーケンスに平らになります。
以下はlinqからsqlの例です。Select
SelectMany
には一連のリストが含まれています。各リストは人の電話番号を表します。このメソッドは、このネストされた構造を平坦化し、1つの電話番号のみを含む
を生成します。<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
パラメーターを使用することもできます。したがって、変数は、その人の名前と電話番号を含む匿名オブジェクトのリストを保存します。 SelectMany
phoneNumbers
この包括的な例は、linqからSQLのメソッドの基本的な違いを示しています。変換シーケンス内の単一要素、および
以上がlinq select vs. selectmany:ネストされたコレクションを平坦化するとき、それらはどのように異なりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。