C#新手遇‘List<>类型或命名空间未找到’报错求助(VS2017 Mac)
解决 'List<>' 找不到的问题
嘿,刚接触C#遇到这个问题太正常了——我当年第一次写泛型集合的时候也踩过一模一样的坑!这个错误90%的情况都是忘记引入List<>所在的命名空间导致的,咱们一步步来解决:
1. 先给代码加命名空间引用
List<T>属于System.Collections.Generic这个命名空间,默认不会自动导入到你的代码文件里。你只需要在.cs文件的最顶部,加上这一行代码:
using System.Collections.Generic;
基本上加完这行,错误就会消失了——这是最常见也最直接的解决方案。
2. 如果加了还是报错?检查项目引用
极少数情况下,你的项目可能没引用包含List<T>的核心程序集(不过Visual Studio 2017 Mac的默认C#项目一般都会自动配置好)。如果还是有问题,你可以这么检查:
- 在解决方案资源管理器里右键你的项目,选择引用
- 看看列表里有没有
System.Runtime或者System.Collections(List<T>实际在System.Runtime程序集里,不管是.NET Core还是.NET Framework项目都包含它) - 如果找不到,点击添加引用,在弹出的窗口里找到对应的程序集添加进去就行
给你一个完整的合并数组示例
刚学C#的话,你可以参考这个完整的代码示例,它展示了怎么把两个数组合并到List里,结构也完全符合规范:
using System; using System.Collections.Generic; // 这行必须有! namespace ArrayToListDemo { class Program { static void Main(string[] args) { // 定义两个测试数组 int[] numbers = { 1, 2, 3, 4 }; string[] words = { "Hello", "C#", "World" }; // 合并到List(这里用List<object>是因为两个数组类型不同;如果数组类型相同,直接用对应类型比如List<int>就行) List<object> combinedList = new List<object>(); combinedList.AddRange(numbers); combinedList.AddRange(words); // 输出看看结果 foreach (var item in combinedList) { Console.WriteLine(item); } } } }
另外,如果你不想加using指令,也可以直接写完整的命名空间路径,比如System.Collections.Generic.List<object>,但显然加using会让代码更简洁易读。
内容的提问来源于stack exchange,提问作者Onthespot




