- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 IQueryProvider.Execute 命令并传入一个表达式,该表达式是我的表达式树项目的一部分。此命令返回一个对象,该对象可以是 OrderedEnumerable 或 GroupedEnumerable,具体取决于原始表达式。 GroupBy 表达式创建 GroupedEnumerable 对象。下面的代码还创建了一个 GroupedEnumerable 对象,它将向您展示我遇到的问题的示例。
List<int> numbers = new List<int> { 1, 7, 16, 23, 41, 66 };
object grouped = numbers.GroupBy(n => n % 2 == 0);
当“grouped”是一个(GroupedEnumerable 的)对象时,我不能将它转换为任何其他允许我对其调用“GetEnumerator”的类型。我也无法将它转换为任何允许我将它与“foreach”命令一起使用的东西。如果我更改代码以使用“var”(如下所示),grouped 现在是 OrderedEnumerable 类型。我可以获得枚举器并在 foreach 命令中使用它。
List<int> numbers = new List<int> { 1, 7, 16, 23, 41, 66 };
var grouped = numbers.GroupBy(n => n % 2 == 0);
回到我的表达式树项目,IQueryProvider.Execute 命令返回一个对象,但当对象是 GroupedEnumerable 时,我需要能够将该对象转换为 OrderedEnumerable。我尝试过的所有转换都显示错误,如“无法将类型为‘System.Linq.GroupedEnumerable`3 的对象转换为类型......”。谁能告诉我如何将对象转换成更有用的东西?
最佳答案
您的 GroupBy
的结果电话将是IEnumerable<IGrouping<bool, int>>
.如果将鼠标悬停在 var
一词上,您可以看到它在你的第二个代码示例中。将其转换为这种类型,它将正常工作。
List<int> numbers = new List<int> { 1, 7, 16, 23, 41, 66 };
object grouped = numbers.GroupBy(n => n % 2 == 0);
IEnumerable<IGrouping<bool, int>> foo =
(IEnumerable<IGrouping<bool, int>>)grouped;
编辑
在你上面的评论之后,如果你的调用输出是 GroupedEnumerable<MyEntityItem,int?,MyEntityItem>
, 那么你可以将它转换为 IEnumerable<IGrouping<int?, MyEntityItem>>
.
关于c# - 如何转换 GroupedEnumerable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3205429/
我正在尝试使用 IQueryProvider.Execute 命令并传入一个表达式,该表达式是我的表达式树项目的一部分。此命令返回一个对象,该对象可以是 OrderedEnumerable 或 Gro
Fruit[] data = new[] { new Fruit {Name = "Gala",Type = "Apple",Price = 0.75m,Quantit
我有这样的类(class)。 public static SkillViewModel GetAllList(string ID) { ListViewModel viewModel = n
我是一名优秀的程序员,十分优秀!