我有一个ASP.NET MVC视图,我使用LINQ将模型分成多个对象列表。
下面的代码的工作原理是我在var data获得了正确的对象列表,但我无法将其转换为我的对象来访问属性。 我得到错误
无法转换类型为'Grouping [<> f__AnonymousType3'2 [System.DateTime,System.String],MVCProj.Models.tblData2017]'的对象,以输入'MVCProj.Models.tblData2017
Index.cshtml查看:
@model IEnumerable<MVCProj.Models.tblData2017> @{ ViewBag.Title = "Index"; } <h2>Title</h2> @{ var data = Model.Where(x => x.Start.Date == DateTime.UtcNow.Date) .GroupBy(x => new { x.Start, x.Field2 }).ToList(); for (int i = 0; i < data.Count; i++) { var rowItem = (List<tblCards2017>)data[i]; //<-Error on this line string header1 = $"{rowItem.Start.ToString("HH:mm")} {rowItem.Field2}"; } }我怎么做下面的任何一个
i)成功地转换var rowItem = (List<tblCards2017>)data[i];
要么
ii)使用linq获取正确的对象类型List<List<tblCards2017> data = Model.Where.....而不是当前类型var data = System.Collections.Generic.List<System.Linq.IGrouping<<>f__AnonymousType2<System.DateTime, string>, MVCProj.Models.tblData2017>>
I have an ASP.NET MVC view where I'm using LINQ to split a model into multiple lists of an object.
The code below works in that I get the correct list of objects in var data but I cannot then cast it to my object to access the properties. I get error
Unable to cast object of type 'Grouping[<>f__AnonymousType3'2[System.DateTime,System.String],MVCProj.Models.tblData2017]' to type 'MVCProj.Models.tblData2017
Index.cshtml View:
@model IEnumerable<MVCProj.Models.tblData2017> @{ ViewBag.Title = "Index"; } <h2>Title</h2> @{ var data = Model.Where(x => x.Start.Date == DateTime.UtcNow.Date) .GroupBy(x => new { x.Start, x.Field2 }).ToList(); for (int i = 0; i < data.Count; i++) { var rowItem = (List<tblCards2017>)data[i]; //<-Error on this line string header1 = $"{rowItem.Start.ToString("HH:mm")} {rowItem.Field2}"; } }How can I do either of the following
i) Successfully cast var rowItem = (List<tblCards2017>)data[i];
or
ii) Use linq to get the correct object type List<List<tblCards2017> data = Model.Where..... instead of the current type var data = System.Collections.Generic.List<System.Linq.IGrouping<<>f__AnonymousType2<System.DateTime, string>, MVCProj.Models.tblData2017>>
最满意答案
我想你看这个:
var data = Model.Where(x => x.Start.Date == DateTime.UtcNow.Date) .GroupBy(x => new { x.Start, x.Field2 }) .Select(g=>g.ToList()).ToList();添加一个Select呼叫以获得每个组的列表
I think you are looking this:
var data = Model.Where(x => x.Start.Date == DateTime.UtcNow.Date) .GroupBy(x => new { x.Start, x.Field2 }) .Select(g=>g.ToList()).ToList();Add a Select call to get a list per each group
更多推荐
发布评论