大佬教程收集整理的这篇文章主要介绍了c# – 将匿名集合放入类中,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我想要一个具有’Total’,’Page’和’Count’的3个int属性的类
然后是属于集合的属性.我仍然希望更改属性,以便我可以使用此对象返回多种类型的查询.我知道我可以“硬输入”每个查询,但是有很多查询变体,最好有一个接受匿名集合的泛型类.
我试过使用的属性
List<object> myQueryCollection
但得到错误:
如何获得一个具有3个int属性的类和一个接受匿名类型的Collection属性.
我想从我的商业层传递一个适当的对象到我的观点……
var jsonData = new { total = totalPages,page = gridSettings.PageIndex,records = counter,rows = (from c in ucs select new {id = c.id,createDate = c.CreateDate}).ToList() };
然后你应该使你的类型通用,类似于lazyberezovsky在他的答案中建议的.您需要利用类型推断,这对构造函数不起作用.但您可以使用静态工厂方法:
public static class ResultFactory { public static Result<T> Create<T>(int total,int page,List<T> items) { return new Result<T> { Total = total,Page = page,Items = items }; } }
用法:
var data = ResultFactory.Create( totalPages,gridSettings.PageIndex,(from c in ucs select new { c.id,createDate = c.CreateDate }).ToList());
如果您不想这样做,您可以使用协变接口,如IEnumerable(或IReadOnlyList,如果您使用.Net 4.5)而不是List.您无法转换List< AnonymousType>列出< object> (或IList< object>),因为这不安全.但是将其强制转换为IEnumerable< object>是安全的.
还有一个选择是创建List< object>首先包含匿名类型的对象.为此,请在调用ToList时指定类型:.ToList< object>()而不是.ToList().
以上是大佬教程为你收集整理的c# – 将匿名集合放入类中全部内容,希望文章能够帮你解决c# – 将匿名集合放入类中所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。