泛型集合为何为null?

leon51 2019-10-22 08:06:11
从一个泛型集合products 中找出所有供应商为“CC”,强转为另一泛型集合productSizes ,下面的代码productSizes 为何为空?是否不能这么写?


List<Product> products = new List<Product>();
list.Add(new Product {id= 1, Name = "A" ,Heigh=10, Width = 10, Length = 20, Suplier = "AA"});
list.Add(new Product {id= 2, Name = "A" ,Heigh=10, Width = 7, Length = 21, Suplier = "BB"});
list.Add(new Product {id= 3, Name = "A" ,Heigh=10, Width = 6, Length = 22, Suplier = "CC"});
list.Add(new Product {id= 4, Name = "A" ,Heigh=10, Width = 9, Length = 19, Suplier = "CC"});
//...

List<ProductSize> productSizes = list
.Select(p=>p.Suplier, p.Heigh, p.Width, p.Length)
.Where(p=>p.Suplier == "CC") as List<ProductSize>;
...全文
154 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿蒙Armon 2019-10-24
  • 打赏
  • 举报
回复
#4楼正解,as无法转换所以为null
by_封爱 版主 2019-10-23
  • 打赏
  • 举报
回复
跟where没关系 是转换的问题. 你select出来的对象不能转换为ProductSize 匿名也不行.. 得使用类对象...

List<ProductSize> productSizes = list
    .Select(p=>new ProductSize (){Suplier=p.Suplier, Heigh=p.Heigh, Width=p.Width, Length=p.Length})
    .Where(p=>p.Suplier == "CC").ToList();
threenewbee 2019-10-22
  • 打赏
  • 举报
回复
List<ProductSize>类型不能从IEnumerable<Product>得到,你得Select(x => new ProductSize() ...)
楠小南 2019-10-22
  • 打赏
  • 举报
回复
两者是什么关系?可以转不,可以转就用cast



List<ProductSize> productSizes = list .Where(p=>p.Suplier == "CC").Cast<ProductSize>().Tolist();



leon51 2019-10-22
  • 打赏
  • 举报
回复
奇怪了,我去掉Where后productSizes仍为null

111,113

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧