首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

linq返回值的有关问题

2012-03-24 
linq返回值的问题!C# code public ListSTUDENT GetList(){var q from s in sdc.STUDENTselect new STU

linq返回值的问题!

C# code
 public List<STUDENT> GetList()        {            var q = from s in sdc.STUDENT                    select new STUDENT{SSEX= s.SSEX,SNAME= s.SNAME,SNO=s.SNO};            return q.OrderBy(s=>s.SNO).ToList();         }        public List<STUDENT> GetList2()        {            return sdc.STUDENT.OrderByDescending(t => t.SNO).Select(s => new { SNO = s.SNO, SSEX = s.SSEX, SNAME = s.SNAME }).ToList();         }


为什么第一个就可以,第二个就报错?
无法将类型“System.Linq.IQueryable<AnonymousType#1>”隐式转换为“System.Collections.Generic.List<DAL.STUDENT>”。存在一个显式转换(是否缺少强制转换?)

什么原因啊?

[解决办法]
new { SNO = s.SNO, SSEX = s.SSEX, SNAME = s.SNAME }) 匿名类型
[解决办法]
系统不知道你new的是什么类型

new { SNO = s.SNO, SSEX = s.SSEX, SNAME = s.SNAME })
[解决办法]
return sdc.STUDENT.OrderByDescending(t => t.SNO).Select(s => new { SNO = s.SNO, SSEX = s.SSEX, SNAME = s.SNAME }).ToList();
}
是一个匿名类型的List,你把它当成List<STUDENT> 来Return,当然不对啦。

[解决办法]
探讨
那我要返回一个List <student> 类型,要怎么写呢?有没有办法?

[解决办法]
return sdc.STUDENT.OrderByDescending(t => t.SNO).Select(s => new STUDENT{ SNO = s.SNO, SSEX = s.SSEX, SNAME = s.SNAME }).ToList();
[解决办法]
或者return sdc.STUDENT.OrderByDescending(t => t.SNO).Select s).ToList();
[解决办法]
up

热点排行