猿问

将 IQueryable 从 IQueryable<IGrouping<int, object>>

我有一个问题转换的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 查询来完成。



子衿沉夜
浏览 243回答 3
3回答

ITMISS

其实我终于找到了一个合适的解决方案。以前答案的问题始终是First()电话。list.Where(SomeFilterExpression)&nbsp; &nbsp; .GroupBy(e => e.Index)&nbsp; &nbsp; .OrderBy(g => g.Key)&nbsp; &nbsp; .Take(1)&nbsp; &nbsp; .SelectMany(g => g.Select(e => e))&nbsp; &nbsp; .Where(SomeAdditionalFilterExpression)&nbsp; &nbsp; .ToList()这段代码(尤其是Take()帮助我仅使用一个SQL 查询来解决我的问题)无论如何感谢您的专业知识。

慕勒3428872

您可以使用对您的组进行排序OrderBy,然后将第一组与FirstOrDefaultvar firstGroup = list.GroupBy(x => x.Index)&nbsp; .OrderBy(g => g.Key)&nbsp; .FirstOrDefault()&nbsp; .AsQueryable();
随时随地看视频慕课网APP
我要回答