Linq GroupBy().具有复杂类型的 select() - 无法计算语法
本文关键字:计算 select 语法 类型 GroupBy 复杂 Linq | 更新日期: 2023-09-27 18:33:53
我有一个由许多对象组成的复杂连接,这会导致填充的交集对象的"列表"......
class Intersect
{
public Subject Subj { get; set; }
public Article Art { get; set; }
public TopicArticle TopArt { get; set; }
public Topic Top { get; set; }
}
var intersections = System
.Where(s => s.SystemID == systemID)
.Join(Subject,
<snip>
该部分工作正常,组装的数据是正确的。接下来我要做的是按 Top.ID 分组,同时返回 Count(Sys.ID) 和 Top.Name。 我明白了...
intersections.GroupBy(g => g.Top.ID)
。但是.Select() 给出错误"类型参数无法从用法中推断出来。尝试显式指定类型参数",然后显示两个替代项 - 一个用于 IQueryable,一个用于 IEnumerable。 同样。Count() 给出一个"不明确"错误。
我迷路了!这是 linq 的一部分,超出了我的范围,有人可以帮我解决这个问题的语法吗,我只是在任何地方都找不到可以让我正确的类似示例。
非常感谢。
终于设法找到了一组合适的帖子,使我能够为此构建解决方案。
@hkf没有看到那个,但它有助于确认我走在正确的轨道上,为此欢呼。
我想出的解决方案(在很大程度上要感谢 LinqPad)...
.GroupBy(q => new {q.Top.Name, q.Top.TopicID })
.Select(group => new
{
id = group.Key.TopicID,
name = group.Key.Name,
count = group.Count()
});
现在它可以工作,我只需要完全理解它(!