一、第一种用法
public static IEnumerable<TResult>
SelectMany<TSource, TResult>
(this IEnumerable<TSource> source, Func<TSource,
IEnumerable<TResult>> selector);
官方释义:将序列的每个元素投影到 IEnumerable<TResult> 并将结果序列合并为一个序列。
测试源码:
1、编写Person类和Dog类
class Person
{
public string Name { set; get; }
public int Age { set; get; }
public string Gender { set; get; }
public Dog[] Dogs { set; get; }
}
public class Dog
{
public string Name { set; get; }
}
使用场景:在Person类中,有一个Dog的数组,或者是Dog的List用于存储实例化Person类所拥有的所有Dog集合,这就是SelectMany使用的关键。
2、编写代码
// 先创建好一个Person的List,往List里面添加数据
List<Person> personList = new List<Person>
{
new Person
{
Name = "P1", Age = 18, Gender = "Male",
Gogs = new Dog[]
{
new Dog { Name = "D1" },
new Dog { Name = "D2" }
}
},
new Person
{
Name = "P2", Age = 19, Gender = "Male",
Gogs = new Dog[]
{
new Dog { Name = "D3" }
}
},
new Person
{
Name = "