gpt4 book ai didi

c# - 如何迭代 Linq 组结果集?

转载 作者:太空狗 更新时间:2023-10-29 22:54:40 24 4
gpt4 key购买 nike

我正在从我的数据库中获取一些数据,并使用 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() };

我现在需要将 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() };

编辑:我想我们可以假设列表是String。所以我正在为此进行编辑。如果这是错误的类型,您需要更改 IList<T>相应地定义。

关于c# - 如何迭代 Linq 组结果集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6624706/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com