gpt4 book ai didi

c# - groupby 时不能隐式转换类型

转载 作者:太空宇宙 更新时间:2023-11-03 19:09:35 24 4
gpt4 key购买 nike

当我尝试按 CellID 分组时出现此错误:

Cannot implicitly convert type 'System.Collections.Generic.List System.Linq.IGrouping int,p2pControllerLogAnalyser.Models.GSMData' to 'System.Collections.Generic.List p2pControllerLogAnalyser.Models.GSMData'

public List<GSMData> GetCellID()
{
return Gsmdata.GroupBy(x => x.CellID).ToList();
}

我做错了什么,我该如何解决?

最佳答案

如果你真的需要这样做,尽管我无法想象为什么,你需要使用 SelectMany 将每组枚举项展平到一个列表中:

public List<GSMData> GetCellID()
{
return Gsmdata
.GroupBy(x => x.CellID)
.SelectMany(gr => gr)
.ToList();
}

当然,这看起来像是您正在尝试将具有相同 CellID 的项目一起批量处理,因此您总是可以简单地订购它:

public List<GSMData> GetCellID()
{
return Gsmdata
.OrderBy(x => x.CellID)
.ToList();
}


根据您的评论,可以返回不同的 CellID 值:

return Gsmdata.Select(x => x.CellID).Distinct();

如果您希望返回一个 ID 和分组数据的计数,您可以将其捆绑到一个匿名类型中:

return Gsmdata
.GroupBy(x => x.CellID)
.Select(gr => new { CellID = gr.Key, Count = gr.Count() });

不过,如果您从方法中返回它,我会创建一个可发现的类型,而不是使用匿名类型。

关于c# - groupby 时不能隐式转换类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21931941/

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