您的位置:首页 > 其它

IEnumerable.Select和SelectMany的区别

2016-07-21 20:17 351 查看
例子(一个人可以有多个手机)

public class People
{
public string Name { get; set; }
public List<Phone> Phone { get; set; }
}
public class Phone
{
public string Number { get; set; }
public string color { get; set; }
}

public class Test
{
public void SelectTest()
{
var peopleList=new List<People>();
var phoneList=peopleList.Select(p => p.Phone);//返回值可以近似的看成List<List<Phone>>
var nameList = peopleList.Select(p => p.Name);//返回值可以近似的看成List<string>
}
public void SelectManyTest()
{
var peopleList = new List<People>();
var phoneList = peopleList.SelectMany(p => p.Phone);//返回值可以近似的看成List<Phone>
}
}


总结

1、SELECT是把操作源的指定元素放到一个新的集合中

2、SELECTMANY的操作可以看做是两步,第一步与SELECT差不多(生成多个List<Phone>),第二步IEnumerable的元素合并成一个(将List<List<Phone>>合并成新的、大的List<Phone>)

 

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: