c# - 在 IGrouping 上使用 SelectMany() 时收到不明确的错误
问题描述
当我编写以下代码时,出现错误:
方法 Enumerable.SelectMany 的类型参数不能从用法中推断出来
var model = new Overview()
{
ModelData = data.GroupBy(g => g.GroupingId1).Select(s => new OverviewdataGrouped()
{
Id = s.Key,
Grouping = s.GroupBy(gr => gr.GroupingId2). Select(se => new OverviewdataGroupedFurther()
{
Id= se.Key,
Grouping2 = se.Any() ? se.SelectMany(sel => sel).ToList() : new List<DataModel>()
})
})
};
据我所知,这就是我总是从 中选择数据的IGrouping
方式,但由于某种原因,它不能以这种方式工作。有谁知道我错过了什么或问题可能是什么?
(请注意,变量 sel 中SelectMany
包含正确的类型(DataModel))
解决方案
SelectMany 方法将序列的每个元素投影到 IEnumerable 并将生成的序列展平为一个序列。
您对 SelectMany 方法的使用似乎是多余的,因为se
它是分组操作的结果。尝试替换这个:
se.SelectMany(sel => sel).ToList()
这样:
se.ToList()
推荐阅读
- python - 无法降低多层感知器中的训练损失
- javascript - JavaScript:如何使用 reduce 计算值
- php - PHP CURL Get 429 - Too many requests (First Time Initiate It)
- tomcat - 放置在另一个 tomcat 服务器中的 WAR 文件部署在为另一个 tomcat 服务器运行 startup.bat 时
- python - 传感器故障函数覆盖python
- django - 根据Django中相同模型的类型一次调用另一个字段中的多个字段
- python - 在 numpy 数组中交换 2 个术语,python
- mysql - 为什么 CONCAT 不适用于 JSON_VALUE 中的“路径”?
- javascript - Javascript location.href 更改页面标题
- java - JVM 以编程方式获取分配调用堆栈