IQueryable,IEnumerable,List相互转换

发个文记录一下犯的错误吧!!!

如果在使用ASP.NET MVC很多的数据存取都是以IQueryable<>泛型类接收,那么在做两个IQueryable<>集合拼接时对于新手可能会直接考虑使用Concat来链接两个序列,事实使用上没有这么简单。

首先

IQueryable,IEnumerable都可以通过ToList()转换为类型。

PassUser.ToList();

其次

如果需要反向转换,有两个很好用的方法AsQueryable(),AsEnumerable(),可以顺利将List转换为IQueryable,IEnumerable。

List<MO> ListUser = new List<MO>();
PassUser = ListUser.AsQueryable();

最后

如果你需要把两个IQueryable和IEnumerable进行简单拼接,并且像List.Add()那样及其简单的操作数据的话,就先把元数据转换为List拼接完后使用AsQueryable(),AsEnumerable()转换为对应类型。

据说IQueryable是一个临时的数据存储模式相对List更加节约资源,没有细致研究,就说到这里吧。

原文地址:https://www.cnblogs.com/loyung/p/6022111.html