LINQ groupby到List >(LINQ groupby to List>)

编程入门 行业动态 更新时间:2024-10-27 17:09:20
LINQ groupby到List >(LINQ groupby to List>)

我有一个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

更多推荐

本文发布于:2023-07-30 06:59:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1336758.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:LINQ   groupby   List

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!