我正在尝试创建一个程序,它将创建一个向量,生成100个随机数(0 - 99),然后询问用户输入他们是否希望数字从高到低或从低到高排序。
这是我到目前为止只是试图让矢量工作的代码。
using System;
using System.Collections.Generic;
using System.Collections.Generic.List; //this is where the error comes.
using System.Linq;
using System.Text;
namespace System.Collections.Generic
{
class List<T>
{
static void Main(string[] args)
{
List<int> vectorList = new List<int>();
vectorList.Capacity(100);
int i = 100;
for (int x = 0; x <= 100; x++)
{
Random rand = new Random();
i = rand.Next(0, 100);
vectorList.Add(i);
Console.WriteLine(i);
}
}
}
}
除了我不知道如何解决这个问题之外,我们非常感谢任何帮助。
答案 0 :(得分:9)
删除using
行; List
是一个类,而不是命名空间,因此您不必“使用”它。
你的Main()
方法也应属于自己的类; C#不允许重新定义现有类以添加Main()
方法。
此外,Joel Coehoorn's answer将解决您所遇到的问题,我认为您首先将using
行放在那里,LBushkin's advice值得注意。
答案 1 :(得分:9)
这是一个副作用(BoltClock正确),但改变了这个:
List<int> vectorList = new List<int>();
vectorList.Capacity(100);
对此:
List<int> vectorList = new List<int>(100);
另外,请从您的班级名称中删除<T>
。
答案 2 :(得分:8)
你在这里做的一些事情并不是一个好主意,并且直接导致你将会遇到的一些错误。
首先,在C#中,using
指令旨在标识您将依赖的整个命名空间 - 以及该命名空间中公开的所有类型。这条线
using System.Collections.Generic.List
不是指代名称空间,而是指类型(List<T>
) - 并且不合适。
接下来,您尝试创建一个通用类List<T>
作为程序的主类......并且在System.Collections.Generic
命名空间中也不例外。好吧,这将与现有的.NET List<T>
类冲突 - 所以你也会从中获得错误。
您真正想要做的是创建一个与您正在编写的程序相关联(或描述)的命名空间。不要为此目的尝试重用现有的.NET框架名称。并且不要为您的班级List<T>
命名。
最后,您的类实际上不是泛型类...类型参数T
在程序代码中不用于任何目的。而你的类不是列表的实现......它是一个ListProcessor(或者沿着这些行的东西)。在程序中命名类或接口时应该小心,以便它们与命名的内容有很强的关系。避免创建与.NET框架中的公共类已经使用的名称冲突的名称也是一个好主意(如果可能的话),因为这可能会导致代码中出现歧义和混淆。
答案 3 :(得分:1)
删除:
using System.Collections.Generic.List;
列表包含在您已“使用”的通用命名空间中。
答案 4 :(得分:1)
您只需要导入命名空间。所以删除违规行。
除此之外,您已将您的程序类声明为通用List<T>
。你不需要那样,你的入口点应该只是一个普通的静态类。