new*_*_86 5 c# linq ienumerable iterator
我从我的数据库中获取一些数据,并使用linq计算总和和计数并对数据进行分组.这就是我所拥有的:
var si = _repository.GetAllByDate(date);
var cs = from s in si
group s by s.Name into g
select new { Comm = g.Key, SIList = g.ToList(), Count = g.Count() };
Run Code Online (Sandbox Code Playgroud)
我现在需要将cs传递给另一个类中的方法,以便我可以为组中的每个项目提取Comm,SIList和Count,我将它传递给哪个类型?IEnumerable不起作用.实际的linq组结果类型似乎是:
{System.Linq.Enumerable.WhereSelectEnumerableIterator<System.Linq.IGrouping<Model.Domain.MasterData
.MyItem,Model.Domain.SI<>f__AnonymousTyped<Model.Domain.MasterData.MyItem,System.Collections.Generic.List<Model.Domain.SI>,int>>}
有任何想法吗?我实际上想要将cs作为变量传递并在那里迭代它.
如果要在不同的范围内使用,则需要创建与匿名类型定义匹配的类型.
public class SomeClass {
public Comm Comm { get; set; }
public IList<String> SIList { get; set; }
public Int32 Count { get; set; }
}
var si = _repository.GetAllByDate(date);
var cs = from s in si
group s by s.Name into g
select new SomeClass { Comm = g.Key, SIList = g.ToList(), Count = g.Count() };
Run Code Online (Sandbox Code Playgroud)
编辑:我想我们可以假设列表将是String这样我正在编辑.如果这是错误的类型,您需要相应地更改IList<T>定义.