为什么我不能返回IEnumerable <igrouping <a,b>&gt;作为IEnumerable <ienumerable <b>&gt; </ienumerable <b> </igrouping <a,b>

时间:2014-07-17 15:09:53

标签: c# linq ienumerable igrouping

我已使用GroupBy(),并制作了IEnumerable<IGrouping<TKey,TValue>>

我可以对其进行预测,并将每个元素(每个IGrouping<TKey,TValue>)传递给接受IEnumerable<TValue>的方法

这并不奇怪 - IGrouping<TKey,TValue>实施IEnumerable<TValue>

但是如果我定义了一个接受IEnumerable<IEnumerable<B>>的方法,那么我就无法直接传入GroupBy()的输出,即使它是IEnumerable<>并且内部的每个元素都是它是IEnumerable<B>

为什么?

1 个答案:

答案 0 :(得分:0)

正如几个人所指出的那样(事实上,正如我在脑后知道的那样),这只是一个协方差问题,而且只能在.NET 4之前的环境中中断。