我有一个问题转换的IQueryable<IGrouping<int, object>>到IQueryable<object>。该对象是一个具有 属性的类int Index。该IGrouping's密钥是指数。我想IQueryable<object>在考虑唯一最低索引的地方进行合并。例如几个分组IGrouping<3, object>IGrouping<4, object>IGrouping<4, object>IGrouping<5, object>IGrouping<6, object>IGrouping<3, object>IGrouping<3, object>结果应该是IQueryable<object>只有索引为3的对象在里面。PS 我需要IQueryable在它上面执行 DateTime DbFunctions。所以希望这可以通过一个 SQL 查询来完成。
3 回答
ITMISS
TA贡献1871条经验 获得超8个赞
其实我终于找到了一个合适的解决方案。以前答案的问题始终是First()电话。
list.Where(SomeFilterExpression)
.GroupBy(e => e.Index)
.OrderBy(g => g.Key)
.Take(1)
.SelectMany(g => g.Select(e => e))
.Where(SomeAdditionalFilterExpression)
.ToList()
这段代码(尤其是Take()帮助我仅使用一个SQL 查询来解决我的问题)无论如何感谢您的专业知识。
慕勒3428872
TA贡献1848条经验 获得超6个赞
您可以使用对您的组进行排序OrderBy,然后将第一组与FirstOrDefault
var firstGroup = list.GroupBy(x => x.Index)
.OrderBy(g => g.Key)
.FirstOrDefault()
.AsQueryable();
- 3 回答
- 0 关注
- 238 浏览
添加回答
举报
0/150
提交
取消