1

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

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

这不足为奇 -IGrouping<TKey,TValue>实现IEnumerable<TValue>

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

为什么?

4

1 回答 1

0

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

于 2014-07-28T13:34:36.143 回答