如果在开发的时候遇到非泛型 类型“IEnumerable”不能与类型参数一起使用,那么就是变量的命名空间没弄对

在 dotnet 里面有 System.Collections.IEnumerableSystem.Collections.Generic.IEnumerable<> 两个不同的类,带泛型的需要在 System.Collections.Generic 命名空间找到

如果是写了 System.Collections.IEnumerable<Foo> 那么请修改代码里面的命名空间 System.Collections.Generic.IEnumerable<Foo> 就可以通过编译

如果是使用 IEnumerable<Foo> 提示 不能与类型实参一起使用,那么只需要添加 using 就可以

using System.Collections.Generic;

除了 IEnumerable 对于 IEnumerator 也一样,如果遇到非泛型 类型“System.Collections.IEnumerator”不能与类型实参一起使用,那么看代码里面是通过 System.Collections.IEnumerator<Foo> 还是 IEnumerator<Foo> 可以选择添加命名空间还是修改


本文会经常更新,请阅读原文: https://dotnet-campus.github.io//post/dotnet-%E9%9D%9E%E6%B3%9B%E5%9E%8B-%E7%B1%BB%E5%9E%8B-System.Collections.IEnumerable-%E4%B8%8D%E8%83%BD%E4%B8%8E%E7%B1%BB%E5%9E%8B%E5%AE%9E%E5%8F%82%E4%B8%80%E8%B5%B7%E4%BD%BF%E7%94%A8.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

知识共享许可协议 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 lindexi (包含链接: https://dotnet-campus.github.io/ ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系