joh*_* Gu 7 c# linq entity-framework
我找到了以下关于.Select和.SelectMany之间差异的例子
public class PhoneNumber
{
public string Number { get; set; }
}
public class Person
{
public IEnumerable<PhoneNumber> PhoneNumbers { get; set; }
}
IEnumerable<Person> people = new List<Person>();
// Select gets a list of lists of phone numbers
IEnumerable<IEnumerable<PhoneNumber>> phoneLists = people.Select(p => p.PhoneNumbers);
// SelectMany flattens it to just a list of phone numbers.
IEnumerable<PhoneNumber> phoneNumbers = people.SelectMany(p => p.PhoneNumbers);
Run Code Online (Sandbox Code Playgroud)
但实际上,我无法理解它们之间的区别(选择获取电话号码列表的列表,而SelectMany将其展平为仅列出电话号码.).
Seond问题,写作之间有什么区别: -
people.Select(p => p.PhoneNumbers);
Run Code Online (Sandbox Code Playgroud)
&
people.Include(p => p.PhoneNumbers);
Run Code Online (Sandbox Code Playgroud)
Mar*_*zek 11
选择获取电话号码列表,而SelectMany将其展平为电话号码列表.
这正是差异.SelectMany获取集合的集合并将所有项目作为一个集合返回.
people.Select(p => p.PhoneNumbers);
Run Code Online (Sandbox Code Playgroud)
仅选择电话号码.
people.Include(p => p.PhoneNumbers);
Run Code Online (Sandbox Code Playgroud)
选择已加载电话号码的人员实体.
| 归档时间: |
|
| 查看次数: |
5971 次 |
| 最近记录: |