果糖网

Linq中Select 和 SelectMany的区别 返回

C#论坛
60
该叫什么 小杰 发布于2周前
悬赏:5 飞吻
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>();

// 查询多个string到一个集合
IEnumerable<IEnumerable<PhoneNumber>> phoneLists = people.Select(p => p.PhoneNumbers);

// 查询多个集合 合并到一个集合
IEnumerable<PhoneNumber> phoneNumbers = people.SelectMany(p => p.PhoneNumbers);

//查询多个集合 合并到一个新的类型集合
var directory = people
   .SelectMany(p => p.PhoneNumbers,
               (parent, child) => new { parent.Name, child.Number });


热忱回答0

学习文档