【问题标题】:Unable to declare an ArrayList using Code on OSX无法在 OSX 上使用代码声明 ArrayList
【发布时间】:2026-01-15 12:55:01
【问题描述】:

我将 OSX 上的代码与 .NET Core 一起使用。在尝试创建 ArrayList 时,我收到一个错误,即找不到命名空间。

System.Collections 已被使用。在检查System.Collections 的建议时,我发现并非所有方法都列在文档中。

可能是什么问题?我从 MS 站点安装了最新的 .NET Core。

【问题讨论】:

  • 对于初学者来说,使用 List 而不是 ArrayList。
  • 没关系,我也参考不了这个。我猜它是 Collections 命名空间,因此是这个问题。
  • 是否引用了程序集?
  • 除非你引用了 System.Collections.NonGeneric,否则那些过时的类型不会出现。
  • @将没有 List 在 System.Collections.Generic 中

标签: c# macos arraylist collections visual-studio-code


【解决方案1】:

您不能使用该类型,因为它是在单独的 NuGet 包中定义的,

http://www.nuget.org/packages/System.Collections.NonGeneric/

请注意,此软件包仅支持少数平台,因此对于某些名称,您无法引用它。

推荐的方法是切换到集合类型的通用版本。

【讨论】:

    【解决方案2】:

    Mac 中似乎不支持 System.Collections.NonGeneric。即使我安装了该软件包,它对我也不起作用。看起来它已被弃用,Microsoft 也建议改用通用列表。

    【讨论】:

      【解决方案3】:

      打开你的 .csproj 并在

      下添加以下内容
      <ItemGroup>
        <PackageReference Include="System.Collections.NonGeneric" Version="4.3.0">
        </PackageReference>
      </ItemGroup>
      

      在终端或命令提示符下,确保您与项目位于同一工作目录并运行

      # dotnet restore 
      

      您现在可以在项目中使用它

      【讨论】: